"does not contain operation meta data for" Native versus Metro
by Craig Setera
I've been trying to implement a JAX-WS implementation on top of native
JBoss Enterprise 5.0.1 using a previously created WSDL file. I continue
to receive the error "does not contain operation meta data for" for the
method in the WebService class for native, however, if I switch to using
the Metro implementation, things work fine. I'm really confused as to
what I might be doing wrong. I'm including an extract of the WSDL and
implementation files below. I'm not including the schema-based objects,
since I don't think it is even getting that far.
I would appreciate any insights that could be offered.
Thanks,
Craig
Top Of Stack
=============
SOAP request exception
javax.xml.rpc.soap.SOAPFaultException: Endpoint
{http://www.xyz.com/abc/Definition}abcSOAP does not contain operation
meta data for: {http://www.xyz.com/abc/Schema}signOnRequest
at
org.jboss.ws.core.jaxrpc.SOAPFaultHelperJAXRPC.exceptionToFaultMessage(SOAPFaultHelperJAXRPC.java:189)
at
org.jboss.ws.core.jaxws.SOAPFaultHelperJAXWS.exceptionToFaultMessage(SOAPFaultHelperJAXWS.java:193)
at
org.jboss.ws.core.jaxws.binding.SOAP11BindingJAXWS.createFaultMessageFromException(SOAP11BindingJAXWS.java:102)
at
org.jboss.ws.core.CommonSOAPBinding.bindFaultMessage(CommonSOAPBinding.java:673)
at
org.jboss.ws.core.server.ServiceEndpointInvoker.invoke(ServiceEndpointInvoker.java:303)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.processRequest(RequestHandlerImpl.java:505)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:300)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:207)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:132)
at
org.jboss.wsf.common.servlet.AbstractEndpointServlet.service(AbstractEndpointServlet.java:87)
Service Implementation
================
@WebService(
name = "abc",
serviceName = "abc",
portName = "abcSOAP",
targetNamespace = "http://www.xyz.com/abc/Definition",
wsdlLocation = "WEB-INF/wsdl/abc.wsdl")
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class abcSOAPService {
@WebMethod(action="http://www.xyz.com/abc/SignOn")
@WebResult(targetNamespace="http://www.xyz.com/abc/Schema", name =
"signOnResponse")
public SignOnResponse SignOn(
@WebParam(targetNamespace="http://www.xyz.com/abc/Schema",
name="signOnRequest") SignOnRequest request)
{
return new SignOnResponse();
}
}
WSDL Extract
==========
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:abc="http://www.xyz.com/abc/Schema"
xmlns:tns="http://www.xyz.com/abc/Definition"
targetNamespace="http://www.xyz.com/abc/Definition">
<wsdl:types>
<xsd:schema
targetNamespace="http://www.xyz.com/abc/Schema">
<xsd:include schemaLocation="abc.xsd" />
</xsd:schema>
</wsdl:types>
<wsdl:message name="SignOnRequest">
<wsdl:part name="messagePart" element="abc:signOnRequest" />
</wsdl:message>
<wsdl:portType name="abc">
<wsdl:operation name="SignOn">
<wsdl:input message="tns:SignOnRequest" />
<wsdl:output message="tns:SignOnResponse" />
<wsdl:fault name="Error" message="tns:Error" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="abcSOAP" type="tns:abc">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="SignOn">
<soap:operation
soapAction="http://www.xyz.com/abc/SignOn" />
<wsdl:input>
<soap:body parts="messagePart" use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body parts="messagePart" use="literal" />
</wsdl:output>
<wsdl:fault name="Error">
<soap:fault name="Error" use="literal" />
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="abc">
<wsdl:port binding="tns:abcSOAP" name="abcSOAP">
<soap:address location="http://www.xyz.com/" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
14 years, 1 month