Hello,

I'm trying to set up a simple web service that returns a StockData object that 
has 4 properties.  From my client, I can invoke the service and I can step 
through the method in the debugger and see that an object is created and 
populated.  However, when the method returns at the client the object is null.

The endpoint in a JSR 181 EJB3:

Interface:
  | 
  | @Remote
  | public interface WeatherService {
  |   public StockData getStockData(String title);
  | }
  | 
  | Implementation:
  | 
  | @WebService(name = "WeatherService", targetNamespace = "http://org.test";, 
serviceName = "WeatherService")
  | @SOAPBinding(style = SOAPBinding.Style.RPC)
  | @Stateless
  | @Remote(WeatherService.class)
  | @RemoteBinding(jndiBinding = "/ejb3/EJB3EndpointInterface")
  | public class WeatherServiceBean implements WeatherService {
  |   @WebMethod
  |   public StockData getStockData(final String title) {
  |     StockData stockData = new StockData(title, 1, 234, true);
  |     return stockData;
  |   }
  | }
  | 
  | 
  | SOAP Request:
  | 
  | <soapenv:Envelope
  |     xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
  |    <soapenv:Body>
  |       <s0:getStockData
  |           xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
  |           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  |           xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  |           xmlns:s0="http://org.test";>
  |          <String_1>SomeTitle</String_1>
  |       </s0:getStockData>
  |    </soapenv:Body>
  | </soapenv:Envelope>
  | 
  | SOAP Respose:
  | 
  | <env:Envelope
  |     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
  |    <env:Header />
  |    <env:Body>
  |       <ns1:getStockDataResponse xmlns:ns1="http://org.test";>
  |          <result xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; />
  |       </ns1:getStockDataResponse>
  |    </env:Body>
  | </env:Envelope>
  | 
  | 
  | The generated WSDL from calling 
http://dfvgm71j:8080/WebServiceEJB/WeatherServiceBean?WSDL:
  | 
  | <definitions name="WeatherService"
  |                   targetNamespace="http://org.test"; 
  |                   xmlns="http://schemas.xmlsoap.org/wsdl/"; 
  |                   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; 
  |                   xmlns:tns="http://org.test"; 
  |                   xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  |  <types>
  |   <schema elementFormDefault="qualified"
  |                  targetNamespace="http://org.test"; 
  |                  xmlns="http://www.w3.org/2001/XMLSchema"; 
  |                  
xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/"; 
  |                  xmlns:tns="http://org.test"; 
  |                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
  |    <complexType name="StockData">
  |     <sequence/>
  |    </complexType>
  |   </schema>
  |  </types>
  |  <message name="WeatherService_getStockDataResponse">
  |   <part name="result" type="tns:StockData"/>
  |  </message>
  |  <message name="WeatherService_getStockData">
  |   <part name="String_1" type="xsd:string"/>
  |  </message>
  |  <portType name="WeatherService">
  |   <operation name="getStockData" parameterOrder="String_1">
  |    <input message="tns:WeatherService_getStockData"/>
  |    <output message="tns:WeatherService_getStockDataResponse"/>
  |   </operation>
  |  </portType>
  |  <binding name="WeatherServiceBinding" type="tns:WeatherService">
  |   <soap:binding style="rpc" 
transport="http://schemas.xmlsoap.org/soap/http"/>
  |   <operation name="getStockData">
  |    <soap:operation soapAction=""/>
  |    <input>
  |     <soap:body namespace="http://org.test"; use="literal"/>
  |    </input>
  |    <output>
  |     <soap:body namespace="http://org.test"; use="literal"/>
  |    </output>
  |   </operation>
  |  </binding>
  |  <service name="WeatherService">
  |   <port binding="tns:WeatherServiceBinding" name="WeatherServicePort">
  |    <soap:address 
location="http://DFVGM71J:8080/WebServiceEJB/WeatherServiceBean"/>
  |   </port>
  |  </service>
  | </definitions>


I can't work this out.  If I change the return type to a String then my client 
gets the value.  What am I doing wrong?

Chris.

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3979588#3979588

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3979588
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to