dev@jax-ws.java.net

Re: Problem with WS client in an applet

From: Sameer Tyagi <Sameer.Tyagi_at_Sun.COM>
Date: Thu, 13 Jul 2006 15:56:58 -0400
Hi Rick

In response to issue 13 "Problem running WS client in Applet" I have posted an example and blog entry
explaining how to use it.
http://blogs.sun.com/roller/page/sameert?entry=accessing_jax_ws_endpoints_from

I was unable to reproduce your error below.

Hope this helps
/s


Jones, Rick wrote:
Message
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(ServiceContextBuilder.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