cancel
Showing results for 
Search instead for 
Did you mean: 

error downloading file GUI for HTML

Former Member
0 Kudos

Hi to all!

We have an application, which uses function module GUI_DOWNLOAD

This application is available in SAP GUI for HTML

We can work fine with our application in webGUI, including file download.

It works in these environments:

Internet Explorer 8 (32bit), java version 6.45 (32bit)

IE 8 (32bit), Java version 7.55 (32 bit)

it also works in IE10 with compatibility mode turned on.

Event sequence in Web GUI after calling GUI_DOWNLOAD is:

1. I am redirected to the page with title 'Transfer an Internal Table to Frontend'

2. It refreshes automatically several times (according to number of transferred packages)

3. After processing all transfer packages, I am redirected back to my UI with the success message (xxx bytes transferred)

4. The file is present in file system. Everything's ok

When we are calling our application through web gui from another machine, which is located in another network (accessing our server through port 8001 is allowed)

It has IE9 (32bit), java version 6.45 (32bit), everything works fine

EXCEPT file downloading.

The event sequence differs:

1. Redirect to the page 'Transfer an Internal Table to Frontend'

2. Page is not refreshed automatically. Instead of the message about file saving, there is an error icon.

I need to manually allow operation by right-clicking the field with error icon and choosing 'Allow' (or by pressing Enter).

I need to repeat this operation several times (according to number of packages)

3. After processing all packages, I am redirected back with success message, BUT No file is present in my file system.

Our system's component version: 7.0 EHP 1, patch level 9

Any ideas about what is wrong and what I can try to do?

Thank you in advance!

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member194364
Active Contributor
0 Kudos

Hello Oleg,

I suspect the JVM could be the issue here. It probably may explain the differing behaviour when calling the same WEBGUI service and transaction.

Second scenario you are using a lower java version 6.45 v's Java version 7.55 in the first scenario.

Regards,

Oisin


Former Member
0 Kudos

Hello, Oisin.

Thank you for your reply.

First scenario works in three different environments:

- IE 8 (32bit), java version 6.45 (32bit)

- IE 8 (32bit), java version 7.55 (32 bit)

- IE 10 with compatibility mode turned on.


So, in first case we've tested both on JVM v 6.45 and on JVM v 7.55

In second case we've tested only on JVM v 6.45

former_member194364
Active Contributor
0 Kudos


Hi Oleg,

What Kernel are you using with the SAP_BASIS 701 SP9 - SAPKB70109 ?

Have you tested on IE 9.0 with JVM v 7.55 ?

Regards,

Oisin

Former Member
0 Kudos

Hi, Oisin.

Our kernel version is 721_EXT_REL

No, we haven't tested on IE 9.0 with JVM 7.55

former_member194364
Active Contributor
0 Kudos

Hi Oleg,

I suspect the JVM is at issue.

See the following notes and KBA's if you wish to do further tracing on the JVM and the ITS Applet used for Upload/Download.

1733649  ITS Up/Down: tracing improved

2078323  How to get Java control trace for upload or download problem on SAP GUI for HTM

2082325  Complementary information on creating JVM trace for ITS

Regards,

Oisin


Former Member
0 Kudos

Hi, Oisin!

I finally got the JVM trace.

Here are the exceptions:

...

javax.net.ssl.SSLProtocolException: Server did not send a DH Server Key Exchange message

...

java.lang.ClassNotFoundException: DownLoad.class

I can post full log if needed.

One more note - the machine, on which the problem occurs, connects to the server through reverse proxy.

Former Member
0 Kudos

in addition to previous message: full JVM trace log:

Java Plug-in 10.13.2.20

Using JRE version 1.7.0_13-b20 Java HotSpot(TM) Client VM

User home directory = C:\Users\admin

----------------------------------------------------

c:   clear console window

f:   finalize objects on finalization queue

g:   garbage collect

h:   display this help message

l:   dump classloader list

m:   print memory usage

o:   trigger logging

q:   hide console

r:   reload policy configuration

s:   dump system and deployment properties

t:   dump thread list

v:   dump thread stack

x:   clear classloader cache

0-5: set trace level to <n>

----------------------------------------------------

basic: Added progress listener: sun.plugin.util.ProgressMonitorAdapter@5269ca

basic: Plugin2ClassLoader.addURL parent called for https://.../sap/public/bc/its/mimes/webgui/sl/applets/ws.jar

basic: Plugin2ClassLoader.addURL parent called for https://.../sap/public/bc/its/mimes/webgui/sl/applets/ws.jar

network: Cache entry not found [url: https://.../sap/public/bc/its/mimes/webgui/sl/applets/ws.jar, version: null]

network: Connecting https://.../sap/public/bc/its/mimes/webgui/sl/applets/ws.jar with proxy=DIRECT

network: Connecting http://.../ with proxy=DIRECT

security: Loading certificates from Deployment session certificate store

security: Loaded certificates from Deployment session certificate store

security: Checking if certificate is in Deployment denied certificate store

security: Checking if certificate is in Deployment session certificate store

javax.net.ssl.SSLProtocolException: Server did not send a DH Server Key Exchange message

  at sun.security.ssl.ClientHandshaker.serverHelloDone(Unknown Source)

  at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)

  at sun.security.ssl.Handshaker.processLoop(Unknown Source)

  at sun.security.ssl.Handshaker.process_record(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)

  at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)

  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)

  at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)

  at sun.plugin.PluginURLJarFileCallBack.connect(Unknown Source)

  at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)

  at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)

  at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)

  at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)

  at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)

  at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)

  at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)

  at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)

  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)

  at java.lang.Thread.run(Unknown Source)

network: Cache entry not found [url: https://.../sap/public/bc/its/mimes/webgui/sl/applets/ws.jar, version: null]

network: Connecting https://.../sap/public/bc/its/mimes/webgui/sl/applets/ws.jar with proxy=DIRECT

network: Connecting http://.../ with proxy=DIRECT

security: Loading certificates from Deployment session certificate store

security: Loaded certificates from Deployment session certificate store

security: Checking if certificate is in Deployment denied certificate store

security: Checking if certificate is in Deployment session certificate store

javax.net.ssl.SSLProtocolException: Server did not send a DH Server Key Exchange message

  at sun.security.ssl.ClientHandshaker.serverHelloDone(Unknown Source)

  at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)

  at sun.security.ssl.Handshaker.processLoop(Unknown Source)

  at sun.security.ssl.Handshaker.process_record(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)

  at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)

  at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)

  at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)

  at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(Unknown Source)

  at sun.plugin.PluginURLJarFileCallBack.connect(Unknown Source)

  at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)

  at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)

  at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)

  at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)

  at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)

  at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)

  at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)

  at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.getJarFile(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.access$1000(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath$3.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)

  at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader$2.run(Unknown Source)

  at java.security.AccessController.doPrivileged(Native Method)

  at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)

  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)

  at java.lang.Thread.run(Unknown Source)

network: Cache entry not found [url: https://.../sap/public/bc/its/mimes/webgui/sl/applets/, version: null]

network: Cache entry not found [url: https://.../sap/public/bc/its/mimes/webgui/sl/applets/DownLoad.class, version: null]

network: Connecting https://.../sap/public/bc/its/mimes/webgui/sl/applets/DownLoad.class with proxy=DIRECT

network: Connecting http://.../ with proxy=DIRECT

security: Loading certificates from Deployment session certificate store

security: Loaded certificates from Deployment session certificate store

security: Checking if certificate is in Deployment denied certificate store

security: Checking if certificate is in Deployment session certificate store

network: Cache entry not found [url: https://.../sap/public/bc/its/mimes/webgui/sl/applets/DownLoad/class.class, version: null]

network: Connecting https://.../sap/public/bc/its/mimes/webgui/sl/applets/DownLoad/class.class with proxy=DIRECT

network: Connecting http://.../ with proxy=DIRECT

security: Loading certificates from Deployment session certificate store

security: Loaded certificates from Deployment session certificate store

security: Checking if certificate is in Deployment denied certificate store

security: Checking if certificate is in Deployment session certificate store

java.lang.ClassNotFoundException: DownLoad.class

  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)

  at java.lang.Thread.run(Unknown Source)

basic: load: class DownLoad.class not found.

java.lang.ClassNotFoundException: DownLoad.class

  at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)

  at java.lang.ClassLoader.loadClass(Unknown Source)

  at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)

  at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)

  at java.lang.Thread.run(Unknown Source)

basic: Removed progress listener: sun.plugin.util.ProgressMonitorAdapter@5269ca

security: Reset deny session certificate store

former_member194364
Active Contributor
0 Kudos

Hi Oleg,

you say above:

"

One more note - the machine, on which the problem occurs, connects to the server through reverse proxy.

"

so the download work's if you bypass the Proxy? i.e connect to the Netweaver Message Server directly on this client's desktop computer that use's the: Java Plug-in 10.13.2.20 ?

Regards,

Oisin

Former Member
0 Kudos

If the client's computer is in the same network with the server, download works (I don't know the details about network communication here, I can only suppose, there is no proxy)

From external network (and there is reverse proxy between external client's computer and the server), the download doesn't work

former_member194364
Active Contributor
0 Kudos

Hi Oleg,

Are you doing End to End SSL via the Proxy?

what is the exact Kernel 721_EXT_REL patch level that you are using on the WebAS?

There is a note related to using applet through a proxy

1570427 - ITS: applet with relative codebase path

but does not apply to you here if you are using the 721_EXT_REL.

Regards,

Oisin

cris_hansen
Advisor
Advisor
0 Kudos

Hi Oleg,

Could you please clarify whether you already set:

~webgui_new_design 1

in the GUI Configuration of your WEBGUI service (and other services where you use the java applet for download/upload operations)?

With this parameter, the applet used will be the one delivered with the kernel, and not the one from SAP_BASIS.

I also would recommend to use a more recent kernel patch level. Depending on the current patch level installed, you might be missing corrections for the applet.

Thanks and kind regards,

Cris