Hi Peter,
The sample out at the wiki is a bit old - we'll update the wiki after we
finish updating the sample. The latest sample is in trunk
(https://svn.apache.org/repos/asf/geronimo/samples/trunk/samples/jaxws-calculator)
and I in the middle of updating it now on my local machine to use the
geronimo standard sample template and split the war and client into two
modules (great mind in sync...:-) to simplify the sample.
Give me a few days to work on this, but if you want to try the sample
now, go ahead - it should work with axis2. The CXF portion is a bit
too old (last time someone tried it probably was M2 or M3).
Thanks, Lin
Peter Petersson wrote:
Hi all
Looking at the JAX-WS sample example in the G v2.0 documentation at
http://cwiki.apache.org/GMOxDOC20/simple-web-service-with-jax-ws.html
seeing its simplicity i got interested in trying it out and get
something to build from, unfortunately I run into multiple problems.
Running "mvn -Dmaven.test.skip=true install" and deploying with the
console deployer in G v2.0 M6 (and current SNAPSHOT build) I get the
following error (see problem 1 below). Realizing the problem has to do
with the manifest class path entries meant for the "test" client
application and not necessary for the web service per see I commented
out the manifest settings (see problem 2) and managed to deploy without
errors.
Wanting to test the service out I uncommented the pom section again (see
problem 2) and re-build to get a working test client jar.
Unfortunately when running " java -jar jaxws-calculator-1.0.jar 12 35"
to test things out with the client I get the following error (see
problem 3).
Am I doing something wrong here?
I would try to fix the example if I was more knowledgeable about JAX-WS
but maybe some one else could step in and and fix it (If there are
problem with it). If this example would work right out of the box it
would be a great example but in my IMHO to make it even better I would
suggest split the example build into to two maven build modules, one
that creates the service war and one that builds the client jar.
If this is a real problem I should probably create a JIRA but I would
like to get it confirmed first and maybe someone will come up with a
simple solution making the JIRA unnecessary.
thanks
Peter Petersson
Problem 1 (deploying the example):
Manifest class path entries must be a valid jar file (JAVAEE 5 Section
8.2):
jarFile=/usr/local/geronimo-tomcat6-jee5-2.0-SNAPSHOT/repository/org/apache/geronimo/samples/jws/Calculator/1.0/cxf-tools-common-2.0-incubator-RC-SNAPSHOT.jar,
path=cxf-tools-common-2.0-incubator-RC-SNAPSHOT.jar
org.apache.geronimo.common.DeploymentException: Manifest class path
entries must be a valid jar file (JAVAEE 5 Section 8.2):
jarFile=/usr/local/geronimo-tomcat6-jee5-2.0-SNAPSHOT/repository/org/apache/geronimo/samples/jws/Calculator/1.0/cxf-tools-common-2.0-incubator-RC-SNAPSHOT.jar,
path=cxf-tools-common-2.0-incubator-RC-SNAPSHOT.jar
at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:313)
at
org.apache.geronimo.web25.deployment.AbstractWebModuleBuilder.basicInitContext(AbstractWebModuleBuilder.java:330)
at
org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.initContext(TomcatModuleBuilder.java:289)
at
org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder$$FastClassByCGLIB$$6f85ec2c.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
at
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$bd02f8a9.initContext(<generated>)
at
org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.initContext(SwitchingModuleBuilder.java:159)
at
org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder$$FastClassByCGLIB$$d0c31844.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
at
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at
org.apache.geronimo.j2ee.deployment.ModuleBuilder$$EnhancerByCGLIB$$bd02f8a9.initContext(<generated>)
at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:568)
at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder$$FastClassByCGLIB$$38e56ec6.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:830)
at
org.apache.geronimo.gbean.runtime.RawInvoker.invoke(RawInvoker.java:57)
at
org.apache.geronimo.kernel.basic.RawOperationInvoker.invoke(RawOperationInvoker.java:35)
at
org.apache.geronimo.kernel.basic.ProxyMethodInterceptor.intercept(ProxyMethodInterceptor.java:96)
at
org.apache.geronimo.j2ee.deployment.CorbaGBeanNameSource$$EnhancerByCGLIB$$f43072be.buildConfiguration(<generated>)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:302)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:124)
at
org.apache.geronimo.deployment.Deployer$$FastClassByCGLIB$$734a235d.invoke(<generated>)
at net.sf.cglib.reflect.FastMethod.invoke(FastMethod.java:53)
at
org.apache.geronimo.gbean.runtime.FastMethodInvoker.invoke(FastMethodInvoker.java:38)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:127)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:865)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239)
at
org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116)
at
org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.util.zip.ZipException: No such file or directory
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:203)
at java.util.jar.JarFile.<init>(JarFile.java:132)
at java.util.jar.JarFile.<init>(JarFile.java:97)
at
org.apache.geronimo.deployment.DeploymentContext.getCompleteManifestClassPath(DeploymentContext.java:311)
... 42 more
Problem 2 (comenting out pom.xml section):
<!-- <manifest>
<mainClass>org.apache.geronimo.samples.jws.client.CalculatorClient</mainClass>
<addClasspath>true</addClasspath>
</manifest> -->
Problem 3 (running the client):
......../calculator/target/jaxws-calculator-1.0/WEB-INF/lib$ java -jar
jaxws-calculator-1.0.jar 12 35
2007-jul-06 22:20:17
org.springframework.context.support.AbstractApplicationContext refresh
INFO: Refreshing [EMAIL PROTECTED]:
display name [EMAIL PROTECTED];
startup date [Fri Jul 06 22:20:17 CEST 2007]; root of context hierarchy
2007-jul-06 22:20:17 org.apache.cxf.bus.spring.BusApplicationContext
getConfigResources
INFO: Could not find the configuration file cxf.xml on the classpath.
2007-jul-06 22:20:17
org.springframework.context.support.AbstractApplicationContext refresh
INFO: Bean factory for application context
[EMAIL PROTECTED]:
[EMAIL PROTECTED]
2007-jul-06 22:20:17
org.springframework.beans.factory.support.DefaultListableBeanFactory
preInstantiateSingletons
INFO: Pre-instantiating singletons in
[EMAIL PROTECTED]:
defining beans []; root of factory hierarchy
2007-jul-06 22:20:17
org.springframework.context.support.AbstractApplicationContext refresh
INFO: Refreshing [EMAIL PROTECTED]:
display name [EMAIL PROTECTED];
startup date [Fri Jul 06 22:20:17 CEST 2007]; root of context hierarchy
2007-jul-06 22:20:17
org.springframework.beans.factory.support.DefaultSingletonBeanRegistry
destroySingletons
INFO: Destroying singletons in
[EMAIL PROTECTED]:
defining beans []; root of factory hierarchy
2007-jul-06 22:20:17 org.apache.cxf.bus.spring.BusApplicationContext
getConfigResources
INFO: Could not find the configuration file cxf.xml on the classpath.
2007-jul-06 22:20:17
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf.xml]
2007-jul-06 22:20:17
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-http.xml]
2007-jul-06 22:20:17
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-soap.xml]
2007-jul-06 22:20:17
org.springframework.beans.factory.xml.XmlBeanDefinitionReader
loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource
[META-INF/cxf/cxf-extension-xml.xml]
2007-jul-06 22:20:17
org.springframework.context.support.AbstractApplicationContext refresh
INFO: Bean factory for application context
[EMAIL PROTECTED]:
[EMAIL PROTECTED]
2007-jul-06 22:20:18
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'org.apache.cxf.bus.spring.Jsr250BeanPostProcessor' is not
eligible for getting processed by all BeanPostProcessors (for example:
not eligible for auto-proxying)
2007-jul-06 22:20:18
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'cxf' is not eligible for getting processed by all
BeanPostProcessors (for example: not eligible for auto-proxying)
2007-jul-06 22:20:18
org.springframework.context.support.AbstractApplicationContext$BeanPostProcessorChecker
postProcessAfterInitialization
INFO: Bean 'org.apache.cxf.bus.spring.BusExtensionPostProcessor' is not
eligible for getting processed by all BeanPostProcessors (for example:
not eligible for auto-proxying)
2007-jul-06 22:20:18
org.springframework.beans.factory.support.DefaultListableBeanFactory
preInstantiateSingletons
INFO: Pre-instantiating singletons in
[EMAIL PROTECTED]:
defining beans
[cxf,org.apache.cxf.bus.spring.Jsr250BeanPostProcessor,org.apache.cxf.bus.spring.BusExtensionPostProcessor,org.apache.cxf.resource.ResourceManager,org.apache.cxf.binding.BindingFactoryManager,org.apache.cxf.transport.DestinationFactoryManager,org.apache.cxf.transport.ConduitInitiatorManager,org.apache.cxf.wsdl.WSDLManager,org.apache.cxf.phase.PhaseManager,org.apache.cxf.workqueue.WorkQueueManager,org.apache.cxf.buslifecycle.BusLifeCycleManager,org.apache.cxf.endpoint.ServerRegistry,org.apache.cxf.endpoint.ServerLifeCycleManager,org.apache.cxf.transports.http.QueryHandlerRegistry,org.apache.cxf.endpoint.EndpointResolverRegistry,org.apache.cxf.transport.http.policy.HTTPClientAssertionBuilder,org.apache.cxf.transport.http.policy.HTTPServerAssertionBuilder,org.apache.cxf.binding.soap.SoapBindingFactory,org.apache.cxf.binding.soap.SoapTransportFactory,org.apache.cxf.binding.soap.customEditorConfigurer,org.apache.cxf.binding.xml.XMLBindingFactory];
root of factory hierarchy
Exception in thread "main" javax.xml.ws.WebServiceException:
org.apache.cxf.service.factory.ServiceConstructionException: Failed to
create service.
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:101)
at
org.apache.cxf.jaxws.spi.ProviderImpl.createServiceDelegate(ProviderImpl.java:55)
at javax.xml.ws.Service.<init>(Service.java:57)
at javax.xml.ws.Service.create(Service.java:302)
at
org.apache.geronimo.samples.jws.client.CalculatorClient.add(CalculatorClient.java:41)
at
org.apache.geronimo.samples.jws.client.CalculatorClient.main(CalculatorClient.java:33)
Caused by: org.apache.cxf.service.factory.ServiceConstructionException:
Failed to create service.
at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:68)
at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:74)
at
org.apache.cxf.jaxws.ServiceImpl.initializePorts(ServiceImpl.java:107)
at org.apache.cxf.jaxws.ServiceImpl.<init>(ServiceImpl.java:99)
... 5 more
Caused by: javax.wsdl.WSDLException: WSDLException:
faultCode=PARSER_ERROR: Problem parsing
'http://localhost:8080/jaxws-calculator-1.0/CalculatorService.wsdl'.:
java.io.FileNotFoundException:
http://localhost:8080/jaxws-calculator-1.0/CalculatorService.wsdl
at com.ibm.wsdl.xml.WSDLReaderImpl.getDocument(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
at
org.apache.cxf.wsdl11.WSDLManagerImpl.loadDefinition(WSDLManagerImpl.java:177)
at
org.apache.cxf.wsdl11.WSDLManagerImpl.getDefinition(WSDLManagerImpl.java:123)
at
org.apache.cxf.wsdl11.WSDLServiceFactory.<init>(WSDLServiceFactory.java:66)
... 8 more
Caused by: java.io.FileNotFoundException:
http://localhost:8080/jaxws-calculator-1.0/CalculatorService.wsdl
at
sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172)
at
com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:973)
at
com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:184)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:798)
at
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
at
com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
at
com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:250)
at
com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:292)
... 14 more