on 05-21-2015 11:19 AM
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!
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
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.
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
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
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
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
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
User | Count |
---|---|
84 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.