2010-03-01 1 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> 

나는 성공적으로 배포 할 수 있어요.

String을 반환하는 메서드를 호출하려고하면 String이 성공적으로 반환됩니다.

하지만 개체를 ​​반환하는 메서드를 호출 할 때 다음 오류가 발생합니다.

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.impl.XMLErrorReporter.reportError에서 org.apache.xerces.util.ErrorHandlerWrapper.fatalError (알 소스)에 org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException (알 소스) (AT org.apache.xerces.parsers에서 org.apache.xerces.impl.XMLVersionDetector.determineDocVersion에서 org.apache.xerces.impl.XMLErrorReporter.reportError (알 소스) (알 소스)에서 알 수없는 소스). 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 org.apache에서 org.apache.axis.encoding.DeserializationContext.parse (DeserializationContext.java:227)에서 javax.xml.parsers.SAXParser.parse (SAXParser.java:395)에서 (알 소스) org.apache.axis.transport.http.HTTPSender.readFromSocket에서 .axis.SOAPPart.getAsSOAPEnvelope org.apache.axis.Message.getSOAPEnvelope (Message.java:424)에서 (SOAPPart.java:696) (HTTPSen der.java:796) org.apache.axis.strategies.InvocationStrategy.visit에서 org.apache.axis.transport.http.HTTPSender.invoke (HTTPSender.java:144) 에서 (InvocationStrategy.java:32) org.apache.axis.client.AxisClient에서 org.apache.axis.SimpleChain.doVisiting org.apache.axis.SimpleChain.invoke (SimpleChain.java:83)에서 (SimpleChain.java:118) 에서 .invoke (AxisClient.java:165) at org.apache.axis.client.Call.invokeEngine (Call.자바 : 2765) org.apache.axis.client.Call.invoke (Call.java:2424) 에서 org.apache.axis.client.Call.invoke (Call.java:2748) 에서 에서 조직 ws.example.ws.HelloServiceSoapBindingStub.getAwardById에서 .apache.axis.client.Call.invoke org.apache.axis.client.Call.invoke (Call.java:1804)에서 (Call.java:2347) Test.main에서 (HelloServiceSoapBindingStub.java:202) (Test.java:21)

어떤 신체의 도움을 할 수 있습니까?

답변

3

다른 포럼에서 제공된 다음 정보를 기준으로 정렬했습니다.

복잡한 유형을 반환해야하는 경우 <beanMapping/>을 사용해야합니다.

감사합니다.

+0

직접 대답을 받아 들여야합니다. –