Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
1.1
-
None
-
None
Description
I've setup a web service interface and implementation with the proper annotations (@WebService, @WebMethod, @WebParam) and so forth, and deployed the dosgi singlebundle distribution into spring dmServer 2.0. When setup for the simple frontend with jaxb bindings, I get a somewhat ok result, though the generated wsdl exceptions a message payload like this:
<ns1:addWidget><widgetData>...<widgetData></ns1:addWidget>
Obviously this is not optimal, so i decided to switch to JAX-WS, and added the appropriate package imports in my manifest:
@WebService public interface WidgetService { @WebMethod void addWidget(@WebParam(name="widgetData") WidgetData widgetData); }
<osgi.import.package> javax.jws, javax.jws.soap, javax.xml.bind.annotation, javax.xml.bind.annotation.adapters, ... </osgi.import.package>
and then set the front end to use jaxws:
<osgi:service ref="WidgetWebService" interface="com.fiberlink.service.widget.web.api.WidgetWebService"> <osgi:service-properties> <entry key="service.exported.interfaces" value="com.fiberlink.service.widget.web.api.WidgetWebService" /> <entry key="service.exported.configs" value="org.apache.cxf.ws" /> <entry key="org.apache.cxf.ws.frontend" value="jaxws" /> <entry key="org.apache.cxf.ws.databinding" value="jaxb" /> <entry key="org.apache.cxf.ws.address" value="http://localhost:9090/widget" /> </osgi:service-properties> </osgi:service>
I would have expected a proper WSDL to be generated which wanted a payload like this:
<ns1:addWidget><widgetData>...<widgetData></ns1:addWidget>
However, what I got from the WSDL was this. Posts I have googled on indicated there might be something wrong with singlebundle distribution, but the links to the solution are expired, and i've had no luck getting the multibundle distribution working. Everytime I try to deploy a webservice using the multi-bundle distro, it never ends up deploying anything on the requested port #. Same with the 1.2 SNAPSHOT version as well. Seems I'm running into roadblocks everywhere.
<wsdl:definitions name="WidgetWebServiceService" targetNamespace="http://api.web.widget.service.fiberlink.com/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://api.web.widget.service.fiberlink.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:portType name="WidgetWebService"> </wsdl:portType> <wsdl:binding name="WidgetWebServiceServiceSoapBinding" type="tns:WidgetWebService"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> </wsdl:binding> <wsdl:service name="WidgetWebServiceService"> <wsdl:port binding="tns:WidgetWebServiceServiceSoapBinding" name="WidgetWebServicePort"> <soap:address location="http://localhost:9090/widget" /> </wsdl:port> </wsdl:service> </wsdl:definitions>