Citrixwi with netlet problem
Greetings.
I am running sun portal and gateway 2005Q1, and am trying to add Citrix support through the citrixwi portlet.With everything configured, users are SSO'd to citrix correctly, and see their list of applications. When they click on an app, two new browser windows open up. A larger one in the middle of the screen which says 'Loading Citrix Application... Please Wait', and a smaller one in the bottom right corner which is empty with a gray background. I think the netlet should be launching from the smaller window, but it is not. The java console on the client gives the error below.
Any help is greatly appriciated.
Ryan
load: class SServer.class not found.
java.lang.ClassNotFoundException: SServer.class
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadCode(Unknown Source)
at sun.applet.AppletPanel.createApplet(Unknown Source)
at sun.plugin.AppletViewer.createApplet(Unknown Source)
at sun.applet.AppletPanel.runLoader(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
[1348 byte] By [
djlarsu] at [2007-11-25 20:18:01]

# 1
Hi!
Netlet works differently now in 2005Q1. To get Citrixwi to work you have to rewrite it.
The class SServer has been replaced by NetletApplet
I did a lot of changes to Citrixwi but the quintessence to get it to work with 2005Q1 is the to replace some code in citrixnetlet.jsp:
New code:
<applet name="mynetlet" codebase="<%=mycontext%>/netlet" archive="netlet.jar, netletjsse.jar" code="com/sun/portal/netlet/client/applet/NetletApplet.class" id=mynetlet width=1 height=1 MAYSCRIPT>
Old code:
<applet codebase="<%=mycontext%>/netlet" archive="netlet.jar,netletjsse.jar,kssl.jar" code="SServer.class" name=mynetlet id=mynetlet width=1 height=1 MAYSCRIPT>
Also you have to replace the cipher used:
<param name=cipher_0 value=KSSL_SSL3_RSA_WITH_RC4_128_MD5|SSL_RSA_WITH_RC4_128
_MD5>
was:
<param name=cipher_0 value=Rijndael>
I did replace the other ciphers in the code too, but I am not sure anymore if this is necessary.
I dont know if this is enough, I made lots of changes to the provider.
hth
Chris
# 2
Thank you, this has made some progress!
The netlet applet now starts to launch, but generates this error in the client's java console.
java.lang.NullPointerException
at com.sun.portal.netlet.client.common.NL17.t(NL17)
at com.sun.portal.netlet.client.common.NL17.F(NL17)
at com.sun.portal.netlet.client.common.NL17.g(NL17)
at com.sun.portal.netlet.client.applet.NetletApplet.h(NetletApplet)
at com.sun.portal.netlet.client.applet.NetletApplet.start(NetletApplet)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Any thoughts? Is it possible for me to get a copy of your code?
Thanks,
Ryan
# 3
Hi!
Ah, I forgot. Netlet has to be initialized. Add this to the citrixbody jsp.
<iframe src="http://portalserver/portal/NetletConfig?func=makeDetectFrame"
width="1"
height="1"
name="blackbock"
scrolling="no"
FRAMEBORDER="0"
></iframe>
hth
Chris
# 4
Thanks again for your continued help.
I now get this feedback in the java console when loading the citrix portlet.
NetletEnvDetect init
NetletEnvDetect configURL : https://my.findlay.edu/http://my.findlay.edu/portal/NetletConfig
gateway protocol : https
gateway host : my.findlay.edu
gateway port : 443
Netlet config: https://my.findlay.edu/http://my.findlay.edu/portal/NetletConfig?func=loadResou rces
Java version : 1.5.0_04
Proxy type : direct
Netlet not using proxy
Client Config proxyHost null
Client Config proxyPort 0
Client Config proxyMode false
Netlet rule 0: local:58000 destination:my.findlay.edu:80
Netlet rule 1: local:30021 destination:TARGET:21
Netlet rule 2: local:10025 destination:TARGET:25
Netlet rule 3: local:10143 destination:TARGET:143
Netlet rule 4: local:30000 destination:TARGET:23
Local port configuration -> {loopback=[58000:58000], FTP=[30021:30021], IMAP=[10025:10025, 10143:10143], Telnet=[30000:30000]}
Post URL -> https://my.findlay.edu/http://my.findlay.edu/portal/NetletConfig?func=setLoaded
Netlet unable connect back to server : status update failed.
And then this when I try to launch an application.
java.lang.NullPointerException
at com.sun.portal.netlet.client.common.NL17.t(NL17)
at com.sun.portal.netlet.client.common.NL17.F(NL17)
at com.sun.portal.netlet.client.common.NL17.g(NL17)
at com.sun.portal.netlet.client.applet.NetletApplet.h(NetletApplet)
at com.sun.portal.netlet.client.applet.NetletApplet.start(NetletApplet)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception in thread "thread applet-com/sun/portal/netlet/client/applet/NetletApplet.class" java.lang.NullPointerException
at sun.plugin.util.GrayBoxPainter.showLoadingError(Unknown Source)
at sun.plugin.AppletViewer.showAppletException(Unknown Source)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
It looks like the initial netlet applet load is just opening the default ports, and not what is defined in the NetletConfiguration property of the citrix applet. Should I change the netlet config to handle the citrix xml server stuff too? I don't know what the NullPointerException means.
Thanks,
Ryan
# 5
Hi!
I cant check at the moment because I am on road, but the first is completely normal.
Netlet has to be initialized, the NetletConfig does not open any ports so far.
(Or let me rephrase, the ports lead nowhere after init)
So, this is as expected!
About the exception:
I get the same exception(or something very similar) when I am too fast(I open the page and click immediately on the application).
Does it help if you wait a few seconds before starting applications?
Does Netlet itself, e.g. a telnet somewhere work for you?
# 6
Netlet is working ok. The default netlet config sets localhost:58000 to my.findlay.edu:80, and so browsing to http://127.0.0.1:58000/ works ok. Waiting on the Citrix portlet to load does not make any difference. The bottom error still occurs.