2010-03-01 2 views
1

Я пишу простой веб-сервис для возврата объекта с 2 свойствами.Как вернуть сложный объект из веб-службы оси

Я внедряю сервис в существующее веб-приложение.

Мои wsdd выглядят так.

<globalConfiguration> 
    <parameter name="adminPassword" value="admin"/> 
    <parameter name="sendXsiTypes" value="true"/> 
    <parameter name="sendMultiRefs" value="true"/> 
    <parameter name="sendXMLDeclaration" value="true"/> 
    <parameter name="axis.sendMinimizedElements" value="true"/> 

    <requestFlow> 
     <handler type="java:org.apache.axis.handlers.JWSHandler"> 
      <parameter name="scope" value="session"/> 
     </handler> 
     <handler type="java:org.apache.axis.handlers.JWSHandler"> 
      <parameter name="scope" value="request"/> 
      <parameter name="extension" value=".jwr"/> 
     </handler> 
    </requestFlow> 
</globalConfiguration> 

<handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> 
<handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> 
<handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> 

<transport name="http"> 
    <requestFlow> 
     <handler type="URLMapper"/> 
     <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> 
    </requestFlow> 
</transport> 


<transport name="local"> 
    <responseFlow> 
     <handler type="LocalResponder"/> 
    </responseFlow> 
</transport> 


<service name="helloService" provider="java:RPC" style="document" use="literal"> 
    <parameter name="className" value="ws.example.HelloService"/> 
    <parameter name="allowedMethods" value="*"/> 
    <parameter name="scope" value="application"/> 
</service> 

Я могу развернуть его успешно.

Если я пытаюсь вызвать метод, возвращающий строку, он успешно возвращает строку.

Но когда я вызываю метод, возвращающий объект, я получаю следующую ошибку.

AxisFault faultCode: {http://schemas.xmlsoap.org/soap/envelope/} Server.userException faultSubcode: faultString: org.xml.sax.SAXParseException: Преждевременный конец файла. faultActor:
faultNode: faultDetail: {http://xml.apache.org/axis/} stackTrace: org.xml.sax.SAXParseException: Преждевременный конец файла. в org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException (Неизвестный источник) в org.apache.xerces.util.ErrorHandlerWrapper.fatalError (Неизвестный источник) в org.apache.xerces.impl.XMLErrorReporter.reportError (Неизвестный Источник) на org.apache.xerces.impl.XMLErrorReporter.reportError (Неизвестный источник) в org.apache.xerces.impl.XMLVersionDetector.determineDocVersion (Неизвестный источник) в org.apache.xerces.parsers. XML11Configuration.parse (Неизвестно Источник) в org.apache.xerces.parsers.XML11Configuration.parse (Неизвестно Источник) на org.apache.xerces.parsers.XMLParser.parse (Неизвестный Источник) на org.apache.xerces.parsers.AbstractSAXParser.parse (Неизвестный источник) в org.apache.xerces.jaxp.SAXParserImpl $ JAXPSAXParser.parse (Неизвестно Источник) на javax.xml.parsers.SAXParser.parse (SAXParser.java:395) на org.apache.axis.encoding.DeserializationContext.parse (DeserializationContext.java:227) в org.apache .axis.SOAPPart.getAsSOAPEnvelope (SOAPPart.java:696) на org.apache.axis.Message.getSOAPEnvelope (Message.java:424) на org.apache.axis.transport.http.HTTPSender.readFromSocket (HTTPSen der.java:796) на org.apache.axis.transport.http.HTTPSender.invoke (HTTPSender.java:144) на org.apache.axis.strategies.InvocationStrategy.visit (InvocationStrategy.java:32) на org.apache.axis.SimpleChain.doVisiting (SimpleChain.java:118) на org.apache.axis.SimpleChain.invoke (SimpleChain.java:83) на org.apache.axis.client.AxisClient .invoke (AxisClient.java:165) по адресу org.apache.axis.client.Call.invokeEngine (Call.Java: 2765) на org.apache.axis.client.Call.invoke (Call.java:2748) на org.apache.axis.client.Call.invoke (Call.java:2424) в орг .apache.axis.client.Call.invoke (Call.java:2347) на org.apache.axis.client.Call.invoke (Call.java:1804) на ws.example.ws.HelloServiceSoapBindingStub.getAwardById (HelloServiceSoapBindingStub.java:202) в Test.main (Test.java:21)

Может ли помочь телу?

ответ

3

Я отсортировал это, предоставив информацию на других форумах.

Мы должны использовать <beanMapping/>, если необходимо вернуть сложные типы.

спасибо.

+0

Вы должны принять свой собственный ответ –