Thanks for your responses. Peter - that did the trick. Thanks. For anyone encountering the same problem, here's what the sun-web.xml looks like. It needs to be in the WEB-INF directory of the WAR.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN' 'http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd'> <sun-web-app> <class-loader delegate="false"/> </sun-web-app> Thanks again. Now it's on to figuring out Xalan issues when doing logging using the in/out interceptors: org.apache.xml.serializer.ToXMLSAXHandler cannot be cast to org.apache.xml.serializer.SerializationHandler But that's a story for another forum. As a sidenote, I really think that the system properly should take precedence over META-INF/services. On Thu, Dec 9, 2010 at 2:34 AM, Peter Mihalik <[email protected]> wrote: > I think the system property does not work, because the META-INF/services > definition has precedence. > Zarar, try to change the war classloader to delegate=false (in > sun-web.xml), > this worked for me. > > -- > Peter > > On Thu, Dec 9, 2010 at 3:14 AM, Daniel Kulp <[email protected]> wrote: > > > On Wednesday 08 December 2010 5:27:19 pm Zarar Siddiqi wrote: > > > Thanks for the reply, but no luck. > > > > > > The resource when loaded using the context classloader points to: > > > > > > > > > jar:file:/C:/glassfish/lib/webservices-rt.jar!/META-INF/services/javax.xml. > > > ws.spi.Provider > > > > > > Which is obviously wrong. Even starting Glassfish with the system > > property > > > doesn't work. > > > > > > The code you provided does not compile as factory.create(Object) is not > a > > > method. The only create() method does not takes no parameters. > > > > Sorry. The create(Class) method was added recently. It would work > with > > 2.3.1. :-) > > > > Call: > > factory.setServiceClass(HelloWorld.class); > > HelloWorld proxy = (HelloWorld)factory.create(); > > > > The create(Class) method in the newer versions of CXF really just does > the > > above. It's a convienience method to avoid an extra method call and an > > extra > > cast. > > > > Dan > > > > > > > > > > Still looking into it. > > > > > > On Fri, Dec 3, 2010 at 5:46 PM, Daniel Kulp <[email protected]> wrote: > > > > On Friday 03 December 2010 1:47:08 pm Zarar Siddiqi wrote: > > > > > Hi, > > > > > > > > > > Got two apps serving as a client to an external web service, one is > > on > > > > > Tomcat and one is on Glassfish. The Tomcat one works like a charm, > > but > > > > > Glassfish keeps throwing the classic ClassCastException: > > > > > > > > > > com.sun.xml.ws.client.sei.SEIStub cannot be cast to > > > > > org.apache.cxf.frontend.ClientProxy > > > > > > > > > > Funny part is that I have cxf-bundle already in the classpath of > the > > > > > war inside the ear and it contains the javax.xml.ws.spi.Provider > file > > > > > which contains the line org.apache.cxf.jaxws.spi.ProviderImpl. So > I > > > > > dont' see why it's using the provider that comes bundled with the > JDK > > > > > in rt.jar. I even tried putting the cxf-bundle jar at the root of > > the > > > > > EAR but that doesn't do it either. I even tried setting it using > > > > > System.setProperty() and also attempted to create a file manually > > > > > under WEB-INF/classes/... > > > > > > > > but > > > > > > > > > nothing. > > > > > > > > > > Any ideas on what might be missing? > > > > > > > > I'm definitely surprised the system property didn't work. I wonder > if > > a > > > > combination of setting the system property and then making sure the > > the > > > > contextClassLoader().getResource("META-INF/...") call grabs the file > > > > would work. > > > > > > > > You could just do use the JaxWsProxyFactoryBean in CXF directly to > > create > > > > the > > > > client proxy. That would bypass the SPI stuff. > > > > > > > > JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); > > > > factory.setAddress("http://localhost:9000/helloWorld"); > > > > HelloWorld client = factory.create(HelloWorld.class); > > > > > > > > > > > > -- > > > > Daniel Kulp > > > > [email protected] > > > > http://dankulp.com/blog > > > > -- > > Daniel Kulp > > [email protected] > > http://dankulp.com/blog > > > -- Zarar Siddiqi 416-737-9024
