users@jax-ws.java.net

Problem with WS client in an applet

From: Jones, Rick <rick.jones_at_sage.com>
Date: Wed, 26 Apr 2006 09:33:12 +0100

I'm stuck on a client problem, and can't find any answers - any ideas
welcome ...
 
I am unable to get a WS client built with JWSDP 2 to run in an applet. The
problem seems to be with the RuntimeModeler class loader, which I suspect is
falling foul of applet security constraints.
 
My service connector stub (as generated by wsimport) is
com.sage.cpd.uhb.SvcTest, and it fails calling the constructor - here's the
stack trace:
 
class: com.sage.cpd.uhb.Standard could not be found
at com.sun.xml.ws.modeler.RuntimeModeler.getClass(RuntimeModeler.java:269)
at
com.sun.xml.ws.modeler.RuntimeModeler.processDocWrappedMethod(RuntimeModeler
.java:558)
at
com.sun.xml.ws.modeler.RuntimeModeler.processMethod(RuntimeModeler.java:505)
at
com.sun.xml.ws.modeler.RuntimeModeler.processClass(RuntimeModeler.java:353)
at
com.sun.xml.ws.modeler.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:
249)
at
com.sun.xml.ws.client.ServiceContextBuilder.processAnnotations(ServiceContex
tBuilder.java:169)
at
com.sun.xml.ws.client.ServiceContextBuilder.build(ServiceContextBuilder.java
:82)
at
com.sun.xml.ws.client.WSServiceDelegate.<init>(WSServiceDelegate.java:117)
at
com.sun.xml.ws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:50)
at javax.xml.ws.Service.<init>(Service.java:58)
at com.sage.cpd.uhb.SvcTest.<init>(SvcTest.java:40)
at com.sage.cpd.Client.onLoad(Client.java:59)
...
 
"Standard" is one of the web service methods, and it clearly can't create
its corresponding class object. However, "new Standard()" works, so does
Class.forName, so it appears to be a constraint applied to RuntimeModeler.
 
The code is in a signed jar which is loaded by a signed applet, and all the
other WS library jars loaded by the applet are signed. I had to sign all the
jars to overcome an earlier problem, but this problem remains.
 
Exactly the same code runs in a stand-alone application, so I assume it is
an applet security issue. I've also been able to use JWSDP 1.5 / 1.6 without
hitting anything like this.
 
Is this a bug, or is there anything I can do to make it work?
 
Thanks
Rick Jones