[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I am using JBoss 4.3. I followed the exact steps I just got this 10:25:45,013 INFO [DefaultEndpointRegistry] register: jboss.ws:context=EchoTest,endpoint=echo 10:25:45,075 INFO [TomcatDeployer] deploy, ctxPath=/EchoTest, warUrl=.../tmp/deploy/tmp53925EchoTest-exp.war/ 10:25:45,401 INFO [WSDLFilePublisher] WSDL published to: file:/C:/Program Files/JBoss/server/default/data/wsdl/EchoTest.war/EchoService.wsdl I did not get the message regarding ServiceEndpointDeployer. When I test my web service I got exception 10:27:07,011 ERROR [SOAPFaultHelperJAXWS] SOAP request exception java.lang.IllegalStateException: Canot get target bean instance at org.jboss.wsf.container.jboss42.DefaultInvocationHandler.getTargetBean(DefaultInvocationHandler.java:80) at org.jboss.wsf.container.jboss42.DefaultInvocationHandler.invoke(DefaultInvocationHandler.java:90) at org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:220) ... Caused by: java.lang.InstantiationException: echo.Echo at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.jboss.wsf.container.jboss42.DefaultInvocationHandler.getTargetBean(DefaultInvocationHandler.java:75) I don't understand who creates this echo.Echo servlet which is mentioned in the web.xml. Any help View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4175930#4175930 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4175930 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I followed the posting below and I could get EchoTest to work by doing the following (adding portName which is in bold) @javax.jws.WebService(endpointInterface=echo.Echo, portName=EchoPort) public class EchoImpl implements Echo{ ... } It looks like the name should match WSL port which is defined as I am surprised why some instructions are not available in the product manual or part of WSCONSUME intructions. I don't understand why it should be so difficult to do a simple hello world web service when I start from WSDL first. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4175975#4175975 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4175975 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Thanks PeterJ! Sorry Anu, I wasn't reading very carefully, I should have paid more attention before answering. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171487#4171487 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171487 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
ngtdave and PeterJ: Thank you very much for the post. It was quite helpful. I was able to publish the EchoService.wsdl. However, the EchoClient as per the JBossWSUserGuide(http://www.jboss.org/jbossws/docs/jaxws_userguide-2.0/index.html#d0e741) gives me the following Exception: Command: wsrunclient.bat EchoClient 'HelloWorld' Exception in thread main javax.xml.ws.WebServiceException: java.lang.IllegalStateException: Could not setup remoting client at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(Clien tImpl.java:304) at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:242) at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:16 4) at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:15 0) at $Proxy15.echo(Unknown Source) at echo.EchoClient.main(EchoClient.java:15) Caused by: java.lang.IllegalStateException: Could not setup remoting client at org.jboss.ws.core.client.RemotingConnectionImpl.createRemotingClient( RemotingConnectionImpl.java:240) Any pointers? View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171317#4171317 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171317 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Do you have all the proper client jars in your classpath? View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171324#4171324 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171324 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Yes, I do..I updated the wsrunclient.bat script to include all the relevant jars: Here's the list of jars: set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jboss-xml-binding.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/activation.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/javassist.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/getopt.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jaxb-api.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jaxb-impl.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jbossall-client.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/stax-api.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/wstx.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jboss-j2ee.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jboss-saaj.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jboss-jaxws.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jboss-jaxrpc.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/jbossws-client.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/log4j.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/mail.jar set WSRUNCLIENT_CLASSPATH=%WSRUNCLIENT_CLASSPATH%;%JBOSS_HOME%/client/wsdl4j.jar Here's the EchoClient class: | package echo; | | public class EchoClient { | | /** | * @param args | */ | public static void main(String[] args) { | if (args.length != 1) { | System.err.println(usage: EchoClient message); | System.exit(1); | } | EchoService service = new EchoService(); | Echo echo = service.getEchoPort(); | System.out.println(Server said: + echo.echo(args[0])); | } | | } View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171325#4171325 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171325 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
This thread reports the same WSClientException as I am getting http://www.jboss.com/index.html?module=bbop=viewtopicp=4171340 However, I wonder why would I need a trustore to get the WSClient to run. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171341#4171341 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171341 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Do you have a META-INF/standard-jaxws-client-config.xml packages with your client? If so, please post the contents? You did not post the full stack trace - were there are more caused by entries in that trace? Post the contents of the WSDL. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171354#4171354 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171354 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Here are the contents of META-INF META-INF/ META-INF/MANIFEST.MF META-INF/wsdl/ META-INF/wsdl/EchoService.wsdl I don't have a standard-jaxws-client-config.xml This is the entire stack trace with all the 'caused by' entries | Exception in thread main javax.xml.ws.WebServiceException: java.lang.IllegalSt | ateException: Could not setup remoting client | at org.jboss.ws.core.jaxws.client.ClientImpl.handleRemoteException(Clien | tImpl.java:304) | at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:242) | | at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:16 | 4) | at org.jboss.ws.core.jaxws.client.ClientProxy.invoke(ClientProxy.java:15 | 0) | at $Proxy15.echo(Unknown Source) | at echo.EchoClient.main(EchoClient.java:15) | Caused by: java.lang.IllegalStateException: Could not setup remoting client | at org.jboss.ws.core.client.RemotingConnectionImpl.createRemotingClient( | RemotingConnectionImpl.java:240) | at org.jboss.ws.core.client.RemotingConnectionImpl.invoke(RemotingConnec | tionImpl.java:153) | at org.jboss.ws.core.client.SOAPRemotingConnection.invoke(SOAPRemotingCo | nnection.java:77) | at org.jboss.ws.core.CommonClient.invoke(CommonClient.java:331) | at org.jboss.ws.core.jaxws.client.ClientImpl.invoke(ClientImpl.java:230) | | ... 4 more | Caused by: java.lang.NullPointerException | at org.jboss.remoting.InvokerLocator.resolveHost(InvokerLocator.java:333 | ) | at org.jboss.remoting.InvokerLocator.URIParse(InvokerLocator.java:257) | at org.jboss.remoting.InvokerLocator.parse(InvokerLocator.java:213) | at org.jboss.remoting.InvokerLocator.init(InvokerLocator.java:193) | at org.jboss.ws.core.client.RemotingConnectionImpl.createRemotingClient( | RemotingConnectionImpl.java:213) | ... 8 more I am suspicious of one entry in my wsdl though: Replace with actual url I am thinking if I need to change this to http://localhost:8080/echo; This is the wsdl. | ?xml version=1.0 encoding=UTF-8? | definitions name='EchoService' | targetNamespace='http://echo/' | xmlns='http://schemas.xmlsoap.org/wsdl/' | xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' | xmlns:tns='http://echo/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' | types | xs:schema targetNamespace='http://echo/' version='1.0' xmlns:tns='http://echo/' xmlns:xs='http://www.w3.org/2001/XMLSchema' |xs:element name='echo' type='tns:echo'/ |xs:element name='echoResponse' type='tns:echoResponse'/ |xs:complexType name='echo' | xs:sequence | xs:element minOccurs='0' name='arg0' type='xs:string'/ | /xs:sequence |/xs:complexType |xs:complexType name='echoResponse' | xs:sequence | xs:element minOccurs='0' name='return' type='xs:string'/ | /xs:sequence |/xs:complexType | /xs:schema | /types | message name='Echo_echo' | part element='tns:echo' name='echo'/ | /message | message name='Echo_echoResponse' | part element='tns:echoResponse' name='echoResponse'/ | /message | portType name='Echo' | operation name='echo' parameterOrder='echo' |input message='tns:Echo_echo'/ |output message='tns:Echo_echoResponse'/ | /operation | /portType | binding name='EchoBinding' type='tns:Echo' | soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/ | operation name='echo' |soap:operation soapAction=''/ |input | soap:body use='literal'/ |/input |output | soap:body use='literal'/ |/output | /operation | /binding | service name='EchoService' | documentationCongrats! You have published your own WSDL!/documentation | port binding='tns:EchoBinding' name='EchoPort' |soap:address location='REPLACE_WITH_ACTUAL_URL'/ | /port | /service | /definitions View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171357#4171357 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171357 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I think you're on the right track, notice it's having a problem resolving the host, and you have not put the actual host URL in the WSDL. That's probably it. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171360#4171360 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171360 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Looks like I am out of luck again :( Oh! this is so frustrating.. So, I made the following update to my wsdl: | service name='EchoService' | documentationCongrats! You have published your own WSDL!/documentation | port binding='tns:EchoBinding' name='EchoPort' |soap:address location='http://localhost:8080/echo'/ | /port | /service packaged the war and deployed it and now I see this error in the JBossConsole: | 12:38:28,359 INFO [WSDLFilePublisher] WSDL published to: file:/C:/sfsl/runtime/ | localhost/workstation/jboss/data/wsdl/echo.war/EchoService.wsdl | 12:38:28,359 ERROR [ServiceEndpointDeployer] Cannot start service endpoint | org.jboss.ws.WSException: Cannot load service endpoint interface: echo.Echo | at org.jboss.ws.metadata.umdm.EndpointMetaData.getServiceEndpointInterfa | ce(EndpointMetaData.java:238) | at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitializeOperations | (EndpointMetaData.java:510) | at org.jboss.ws.metadata.umdm.EndpointMetaData.initializeInternal(Endpoi | ntMetaData.java:504) | at org.jboss.ws.metadata.umdm.EndpointMetaData.eagerInitialize(EndpointM | etaData.java:492) | at org.jboss.ws.metadata.umdm.ServiceMetaData.eagerInitialize(ServiceMet | aData.java:429) | at org.jboss.ws.metadata.umdm.UnifiedMetaData.eagerInitialize(UnifiedMet | aData.java:192) | at org.jboss.ws.core.server.ServiceEndpoint.start(ServiceEndpoint.java:1 | 12) | at org.jboss.ws.core.server.ServiceEndpointManager.startServiceEndpoint( | ServiceEndpointManager.java:702) | at org.jboss.ws.core.server.ServiceEndpointDeployer.start(ServiceEndpoin | tDeployer.java:140) | at org.jboss.ws.integration.jboss42.DeployerInterceptor.startServiceEndp | oint(DeployerInterceptor.java:144) | at org.jboss.ws.integration.jboss42.DeployerInterceptor.start(DeployerIn | terceptor.java:96) | at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor. | start(SubDeployerInterceptorSupport.java:188) | at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterce | ptor.java:95) | at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker. | java:264) | at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) | at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) | at $Proxy47.start(Unknown Source) | at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) | at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) | at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) | at sun.reflect.GeneratedMethodAccessor24.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces | sorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch | er.java:155) | at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) | at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractIntercept | or.java:133) | at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelM | BeanOperationInterceptor.java:142) | at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) | at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker. | java:264) | at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) | at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) | at $Proxy10.deploy(Unknown Source) | at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymen | tScanner.java:421) | at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentS | canner.java:634) | at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread. | doScan(AbstractDeploymentScanner.java:263) | at org.jboss.deployment.scanner.AbstractDeploymentScanner.startService(A | bstractDeploymentScanner.java:336) | at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanS | upport.java:289) | at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMB | eanSupport.java:245) | at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces | sorImpl.java:25) | at java.lang.reflect.Method.invoke(Method.java:585) | at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch | er.java:155) |
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
According to this line in your WSDL: targetNamespace='http://echo/' the web service class is in a package named echo, and according to this line: portType name='Echo' the simple class name is Echo, which makes the full class name echo.Echo. Therefore, you must have an echo.Echo class in the WAR file for your web service. Apparently, you don't: Caused by: java.lang.ClassNotFoundException: echo.Echo (Hint: always look for the initial exception - with nested exceptions look for 'caused by') View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171383#4171383 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171383 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Thanks, Peter. This fixed it! -Anu View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4171398#4171398 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4171398 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
ngtdave and PeterJ: Thank you for this topic. It was quite helpful. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4138962#4138962 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4138962 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Glad to have helped. :) jacobsm wrote : ngtdave and PeterJ: | | Thank you for this topic. It was quite helpful. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4138964#4138964 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4138964 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I followed this steps, but wsconsume generate only 2 class: the interface and the class which implement it. I create the web.xml, generate the war file, and when I put it in jboss I obtain this: 09:39:15,267 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4. 0.5.GA/server/default/deploy/WPM3.war org.jboss.deployment.DeploymentException: Cannot create service endpoint; - nest ed throwable: (org.jboss.ws.WSException: Cannot find required security resource: WEB-INF/wsse.keystore) So, I create an empty file called wsse.keystore, and I obtain this: 09:40:26,803 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4. 0.5.GA/server/default/deploy/WPM3.war org.jboss.deployment.DeploymentException: Cannot create service endpoint; - nest ed throwable: (org.jboss.ws.WSException: Cannot find required security resource: WEB-INF/wsse.truststore) So, I create an empty file called wsse.truststore, and I obtain this: 09:45:19,415 ERROR [MainDeployer] Could not create deployment: file:/C:/jboss-4. 0.5.GA/server/default/deploy/WPM3.war org.jboss.deployment.DeploymentException: Cannot create service endpoint; - nest ed throwable: (org.jboss.ws.WSException: Cannot find port in wsdl: {http://local host:8080/WPM3}wpmPort) Can you help me? View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4039723#4039723 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4039723 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
sgof, I am not using any sort of security, so I'm not sure what those errors are about. The last error sounds like your wsdl is not syntactically correct. I would suggest starting with a simple example wsdl like the one I provided and a plain JBoss 4.0.5.GA install and get that working first. Once that works, try modifying the project bit by bit to fit what you are trying to do. Hope this helps. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4039826#4039826 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4039826 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Yes it makes more sense on the implementation bean than the interface. Although the spec unfortunately requires that we support it on the interface: From JAXWSWebServiceMetaDataBuilder: | // The spec states that WSDL location should be allowed on an SEI, although it | // makes far more sense on the implementation bean, so we ALWAYS override the SEI | // when wsdlLocation is defined on the bean | if (wsdlLocation.length() == 0) | wsdlLocation = seiAnnotation.wsdlLocation(); | -Jason View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4032530#4032530 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4032530 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I did the same (see my post at http://www.jboss.com/index.html?module=bbop=viewtopict=104664). All of this works fine. Have you tried to access the web service from a client yet? When I attempt to do this, the web services container attempts to instantiate the interface instead of the class, which of course fails miserably. My current hunch is that the web services container is ignoring the WebService annotation on the class (hence the reason why placing wsdlLocation there is ignored). Of course, no-one from the JBossWS team has replied to my post... View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031079#4031079 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031079 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Yeppers, just started doing the clinet, and go the same thing: 07:39:04,886 INFO [ServiceEndpointManager] WebService started: http://127.0.0.1:8080/echo | 08:31:07,730 ERROR [SOAPFaultHelperJAXWS] SOAP request exception | java.lang.InstantiationException: echo.Echo | at java.lang.Class.newInstance0(Class.java:335) But I get my wsdl... now I have to figure out what I messed up now. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031081#4031081 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031081 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I have tried a wide variety of combinations of elements on the WebService annotation on both the class and the interface to no success. The only thing that works is deleting the interface, renaming the class to Echo. That (and the fact that the wsdlLocation has no effect when added the WebService on the class) is what lead me to think the container is ignoring the WebService annotation on the class - it is as if the endpointInterface element is being totally ignored. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031084#4031084 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031084 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
I'll try doing some of what you suggest and see what I can get to happen. Over here http://www.jboss.com/index.html?module=bbop=viewtopict=99158 dwin seems to have been able to make it happen. I wonder if s/he ran a client. dwin mentions anonymous wrote : you just have to ensure that the wsdl in wsdl location does not contradict the web service implementation. | I'm not sure what exaclty s/he is referring to, but perhaps there is something in the hand coded wsdl which contradicts the annotation, thus cases this problem. Maybe by investigating the difference in the generated and hand coded, I can find the answer. Let me know if you get it working, and I will do the same. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031091#4031091 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031091 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
ngtdave wrote : | 07:39:04,886 INFO [ServiceEndpointManager] WebService started: http://127.0.0.1:8080/echo | | 08:31:07,730 ERROR [SOAPFaultHelperJAXWS] SOAP request exception | | java.lang.InstantiationException: echo.Echo | | at java.lang.Class.newInstance0(Class.java:335) | Alright, I get this error without the wsdlLocation change I made, so it's not that. BTW I'm using JBoss 4.2.0.CR1 with jbossws-1.2.0.GA (build=200703010320) and java 1.5.0_11-b03 View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031108#4031108 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031108 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Alright, I got it working. First I changed my web.xml to use the impl bean: servlet-classecho.EchoImpl/servlet-class per this discussion: http://www.jboss.com/index.html?module=bbop=viewtopict=70837 where Diesler says: anonymous wrote : So this is trying to instanciate an interface. Your web.xml should contain the endpoint impl bean not the SEI. Is that the case? but then I got this error: 9:55:24,824 ERROR [ServiceEndpointDeployer] Cannot create service endpoint | rg.jboss.ws.WSException: Cannot find port in wsdl: {http://echo/}EchoImplPort So then I remembered: https://jax-ws.dev.java.net/jax-ws-ea3/docs/annotations.html#2.1%20javax.jws.WebService%7Coutline specifies: anonymous wrote : javax.jws.WebService.portName - The wsdl:portName So I tried to change Echo.java to declare the port, but I got an error: 09:56:05,683 ERROR [MainDeployer] Could not create deployment: file:/D:/jboss/jboss-4.2.0.CR1/server/default/deploy/echo.war | org.jboss.deployment.DeploymentException: Cannot create service endpoint; - nested throwable: (org.jboss.ws.WSException: @WebService[portName,serviceName,endpoi | ntInterface] MUST NOT be defined on: echo.Echo) So I changed EchoImple.java: @javax.jws.WebService(endpointInterface=echo.Echo,portName=EchoPort) | public class EchoImpl implements Echo | | Now it works and it still serves out my wsdl. I'm not sure if this is a bug or not because the docs here https://jax-ws.dev.java.net/jax-ws-ea3/docs/annotations.html#2.1%20javax.jws.WebService%7Coutline say: anonymous wrote : endpointInterface - The qualified name of the service endpoint interface. This annotation allows the separation of interface contract from implementation. If this property is specified, all other WebService properties are ignored as are all other 181 annotations. Only the annotations on the service endpoint interface will be taken into consideration. The endpoint implementation class is not required to implement the endpointInterface. Which I take to mean the other parameters (portName) should be ignored if endpointInterface is specified. View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031115#4031115 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031115 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
Just to be clear which versions I'm using: Boss 4.2.0.CR1 jbossws-1.2.0.GA (build=200703010320) java 1.5.0_11-b03 Here are the final files. EchoService.wsdl (note the \documentation\ tag near the bottom) ?xml version=1.0 encoding=UTF-8? | definitions name='EchoService' targetNamespace='http://echo/' xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' xmlns:tns='http://echo/' xmlns:xsd='http://www.w3.org/2001/XMLSchema' | types | xs:schema targetNamespace='http://echo/' version='1.0' xmlns:tns='http://echo/' xmlns:xs='http://www.w3.org/2001/XMLSchema' |xs:element name='echo' type='tns:echo'/ |xs:element name='echoResponse' type='tns:echoResponse'/ |xs:complexType name='echo' | xs:sequence | xs:element minOccurs='0' name='arg0' type='xs:string'/ | /xs:sequence |/xs:complexType |xs:complexType name='echoResponse' | xs:sequence | xs:element minOccurs='0' name='return' type='xs:string'/ | /xs:sequence |/xs:complexType | /xs:schema | /types | message name='Echo_echo' | part element='tns:echo' name='echo'/ | /message | message name='Echo_echoResponse' | part element='tns:echoResponse' name='echoResponse'/ | /message | portType name='Echo' | operation name='echo' parameterOrder='echo' |input message='tns:Echo_echo'/ |output message='tns:Echo_echoResponse'/ | /operation | /portType | binding name='EchoBinding' type='tns:Echo' | soap:binding style='document' transport='http://schemas.xmlsoap.org/soap/http'/ | operation name='echo' |soap:operation soapAction=''/ |input | soap:body use='literal'/ |/input |output | soap:body use='literal'/ |/output | /operation | /binding | service name='EchoService' | documentationCongrats! You have published your own WSDL!/documentation | port binding='tns:EchoBinding' name='EchoPort' |soap:address location='REPLACE_WITH_ACTUAL_URL'/ | /port | /service | /definitions web.xml (note servlet-class specifies the imple): ?xml version=1.0 encoding=UTF-8? | | web-app xmlns=http://java.sun.com/xml/ns/j2ee; | xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance; | xsi:schemaLocation=http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd; | version=2.4 | | servlet | servlet-nameecho/servlet-name | servlet-classecho.EchoImpl/servlet-class | /servlet | | servlet-mapping | servlet-nameecho/servlet-name | url-pattern/*/url-pattern | /servlet-mapping | | /web-app Echo.java (note wsdlLocation added by hand to @WebService) package echo; | | import javax.jws.WebMethod; | import javax.jws.WebParam; | import javax.jws.WebResult; | import javax.jws.WebService; | import javax.xml.ws.RequestWrapper; | import javax.xml.ws.ResponseWrapper; | | | /** | * JBossWS Generated Source | * | * ... | * JAX-WS Version: 2.0 | * | */ | @WebService(name = Echo, targetNamespace = http://echo/;, wsdlLocation=META-INF/wsdl/EchoService.wsdl) | public interface Echo { | | | /** | * | * @param arg0 | * @return | * returns java.lang.String | */ | @WebMethod | @WebResult(targetNamespace = ) | @RequestWrapper(localName = echo, targetNamespace = http://echo/;, className = echo.Echo_Type) | @ResponseWrapper(localName = echoResponse, targetNamespace = http://echo/;, className = echo.EchoResponse) | public String echo( | @WebParam(name = arg0, targetNamespace = ) | String arg0); | | } | and finally EchoImpl.java (not the portName) package echo; | | @javax.jws.WebService(endpointInterface=echo.Echo, portName=EchoPort) | public class EchoImpl implements Echo | { |public String echo(String arg0) |{ | return arg0; |} | } And for completeness, the war structure META-INF/ | META-INF/MANIFEST.MF | META-INF/wsdl/ | META-INF/wsdl/EchoService.wsdl | WEB-INF/ | WEB-INF/classes/ | WEB-INF/classes/echo/ | WEB-INF/classes/echo/Echo.class | WEB-INF/classes/echo/EchoImpl.class | WEB-INF/classes/echo/EchoResponse.class | WEB-INF/classes/echo/Echo_Type.class | WEB-INF/classes/echo/ObjectFactory.class | WEB-INF/classes/echo/package-info.class | WEB-INF/web.xml View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031124#4031124 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031124 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user
[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
One more thing. You can now move the wsdlLocation from the interface to the class. This way, you do not have to modify the generated files (not a big deal in this example, but a real big deal if you have many endpoints and are generating the stubs quite often). View the original post : http://www.jboss.com/index.html?module=bbop=viewtopicp=4031214#4031214 Reply to the post : http://www.jboss.com/index.html?module=bbop=postingmode=replyp=4031214 ___ jboss-user mailing list jboss-user@lists.jboss.org https://lists.jboss.org/mailman/listinfo/jboss-user