[jboss-user] [JBossWS] - Re: Providing your own wsdl instead of the generated one.
ngtdave
do-not-reply at jboss.com
Fri Mar 23 12:20:04 EDT 2007
Alright, I got it working.
First I changed my web.xml to use the impl bean:
<servlet-class>echo.EchoImpl</servlet-class>
per this discussion:
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=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=bb&op=viewtopic&p=4031115#4031115
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4031115
More information about the jboss-user
mailing list