2017-07-14 1 views
0

Je deviens fou en cherchant une solution. Je faisais un service web en eclipse à partir d'un fichier WSDL. J'utilise Tomcat 7 comme serveur et travaille avec Java. chose est quand je vais SoapUI pour les tests que je reçois ceci:Impossible d'appeler un service Web créé en eclipse

 <soapenv:Fault> 
    <faultcode>soapenv:Server.userException</faultcode> 
    <faultstring>java.lang.NullPointerException</faultstring> 
    <detail> 
     <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">LES004372</ns1:hostname> 
    </detail> 
    </soapenv:Fault> 

Je ne sais pas quoi faire. J'ai déjà vérifié le fichier WSDL pour des erreurs dans la construction et j'ai aussi essayé de recréer tout le projet de service web mais je n'ai pas trouvé de solution. Pourriez-vous m'aider?

Ici, j'inclure le WSDL précédent que j'utilise pour créer le projet web-service (fait par la vue de conception):

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.example.org/ICalculator/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ICalculator" targetNamespace="http://www.example.org/ICalculator/"> 
    <wsdl:types> 
    <xsd:schema targetNamespace="http://www.example.org/ICalculator/"> 
     <xsd:element name="MSEAddition" type="tns:MSEAdditionType"> 

     </xsd:element> 
     <xsd:element name="MSSAdditionResponse" 
     type="tns:MSSAdditionResponseType"> 

     </xsd:element> 

     <xsd:complexType name="MSEAdditionType"> 
     <xsd:sequence> 
      <xsd:element name="numberOne" type="xsd:int"></xsd:element> 
      <xsd:element name="numberTwo" type="xsd:string"></xsd:element> 
     </xsd:sequence> 
     </xsd:complexType> 

     <xsd:complexType name="MSSAdditionResponseType"> 
     <xsd:sequence> 
      <xsd:element name="result" type="xsd:string"></xsd:element> 
     </xsd:sequence> 
     </xsd:complexType> 
    </xsd:schema> 
    </wsdl:types> 
    <wsdl:message name="AdditionRequest"> 
    <wsdl:part element="tns:MSEAddition" name="MSE"/> 
    </wsdl:message> 
    <wsdl:message name="AdditionResponse"> 
    <wsdl:part element="tns:MSSAdditionResponse" name="MSS"/> 
    </wsdl:message> 
    <wsdl:portType name="ICalculator"> 
    <wsdl:operation name="Addition"> 
     <wsdl:input message="tns:AdditionRequest"/> 
     <wsdl:output message="tns:AdditionResponse"/> 
    </wsdl:operation> 
    </wsdl:portType> 
    <wsdl:binding name="ICalculatorSOAP" type="tns:ICalculator"> 
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> 
    <wsdl:operation name="Addition"> 
     <soap:operation soapAction="http://www.example.org/ICalculator/Addition"/> 
     <wsdl:input> 
     <soap:body use="literal"/> 
     </wsdl:input> 
     <wsdl:output> 
     <soap:body use="literal"/> 
     </wsdl:output> 
    </wsdl:operation> 
    </wsdl:binding> 
    <wsdl:service name="ICalculator"> 
    <wsdl:port binding="tns:ICalculatorSOAP" name="ICalculatorSOAP"> 
     <soap:address location="http://www.example.org/"/> 
    </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

Et voilà la méthode que je vous appelle:

public MSSAdditionResponseType addition(MSEAdditionType MSE) throws java.rmi.RemoteException { 
    MSSAdditionResponseType mssResponse = new MSSAdditionResponseType(Integer.toString(MSE.getNumberOne() + Integer.getInteger(MSE.getNumberTwo()))); 

    return mssResponse; 
} 

Je crois que le problème est dans le WSDL créé après le service Web (celui que j'utilise dans SoapUI) ici est ce fichier:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
     xmlns:tns="http://www.example.org/ICalculator/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="ICalculator" 
     targetNamespace="http://www.example.org/ICalculator/"> 
     <wsdl:types> 
      <xsd:schema targetNamespace="http://www.example.org/ICalculator/"> 
       <xsd:element name="MSEAddition" type="tns:MSEAdditionType"> 

       </xsd:element> 
       <xsd:element name="MSSAdditionResponse" type="tns:MSSAdditionResponseType"> 

       </xsd:element> 

       <xsd:complexType name="MSEAdditionType"> 
        <xsd:sequence> 
         <xsd:element name="numberOne" type="xsd:int" /> 
         <xsd:element name="numberTwo" type="xsd:string" /> 
        </xsd:sequence> 
       </xsd:complexType> 

       <xsd:complexType name="MSSAdditionResponseType"> 
        <xsd:sequence> 
         <xsd:element name="result" type="xsd:string" /> 
        </xsd:sequence> 
       </xsd:complexType> 
      </xsd:schema> 
     </wsdl:types> 
    <wsdl:message name="AdditionRequest"> 
     <wsdl:part element="tns:MSEAddition" name="MSE" /> 
    </wsdl:message> 
    <wsdl:message name="AdditionResponse"> 
     <wsdl:part element="tns:MSSAdditionResponse" name="MSS" /> 
    </wsdl:message> 
    <wsdl:portType name="ICalculator"> 
     <wsdl:operation name="Addition"> 
      <wsdl:input message="tns:AdditionRequest" /> 
      <wsdl:output message="tns:AdditionResponse" /> 
     </wsdl:operation> 
    </wsdl:portType> 
    <wsdl:binding name="ICalculatorSOAP" type="tns:ICalculator"> 
     <soap:binding style="document" 
      transport="http://schemas.xmlsoap.org/soap/http" /> 
     <wsdl:operation name="Addition"> 
      <soap:operation soapAction="http://www.example.org/ICalculator/Addition" /> 
      <wsdl:input> 
       <soap:body use="literal" /> 
      </wsdl:input> 
      <wsdl:output> 
       <soap:body use="literal" /> 
      </wsdl:output> 
     </wsdl:operation> 
    </wsdl:binding> 
    <wsdl:service name="ICalculator"> 
     <wsdl:port binding="tns:ICalculatorSOAP" name="ICalculatorSOAP"> 
      <soap:address 
       location="http://localhost:8080/WebServiceProject/services/ICalculatorSOAP" /> 
     </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

Merci pour votre aide à l'avantage!

+0

Il me semble, le serveur a jeté le NPE, et l'a enveloppé dans une enveloppe '' ... –

Répondre

0

Vous devez obtenir une exception sur votre console. S'il vous plaît partager l'exception pour être plus clair sur votre problème.