2013-01-07 4 views
-1

Je l'emplacement d'adresse de savon dans mon wsdl est aussi "<soap:address location="http://localhost:8080/rpc/soap/helloworldsoap"/>"obtenir une réponse SOAP de l'objet de savon dans webservices

Dans ma méthode de service web, j'ai le chemin suivant.

@HttpResource(location="/{name}") 

Je souhaite obtenir l'objet de réponse SOAP.

J'ai essayé l'URL suivante.

http: // localhost: 8080/rpc/savon/helloworldsoap/abcd

WSDL

<?xml version='1.0' encoding='UTF-8'?> 

<wsdl:definitions name="HelloWorldImplService" targetNamespace="some name space" xmlns:ns1="http://test.com/webservices" xmlns:ns2="http://cxf.apache.org/bindings/xformat" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="some name space" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <wsdl:import location="http://localhost:8080/rpc/soap/helloworldsoap?wsdl=HelloWorld.wsdl" namespace="http://test.com/webservices"> 
    </wsdl:import> 
    <wsdl:binding name="HelloWorldImplServiceSoapBinding" type="ns1:HelloWorld"> 
    <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
    <wsdl:operation name="getHelloWorldAsString"> 
     <soap:operation soapAction="" style="rpc" /> 
     <wsdl:input name="getHelloWorldAsString"> 
     <soap:body namespace="http://test.com/webservices" use="literal" /> 
     </wsdl:input> 
     <wsdl:output name="getHelloWorldAsStringResponse"> 
     <soap:body namespace="http://test.com/webservices" use="literal" /> 
     </wsdl:output> 
    </wsdl:operation> 
    </wsdl:binding> 
    <wsdl:service name="HelloWorldImplService"> 
    <wsdl:port binding="tns:HelloWorldImplServiceSoapBinding" name="HelloWorldImplPort"> 
     <soap:address location="http://localhost:8080/rpc/soap/helloworldsoap" /> 
    </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

SOAP:

<soap:Envelope> 
     <soap:Body> 
     <soap:Fault> 
     <faultcode>soap:Server</faultcode> 
     <faultstring>No such operation: (HTTP GET PATH_INFO: /soap/helloworldsoap)  
     </faultstring> 
    </soap:Fault> 
    </soap:Body> 
    </soap:Envelope> 

Mais je ne reçois pas la objet de réponse.

Quelqu'un peut-il me dire comment y parvenir.

Merci à l'avance.

Répondre

0

Je suis dans la confusion si nous pouvons utiliser l'emplacement de ressource pour SOAP. Pour REST, il est bon, et aussi de votre erreur, il donne une erreur sur le côté serveur (votre entrée est valable) que trop sur l'emplacement.

Essayez quelque chose comme ça ...

Supprimer l'emplacement des ressources, utilisez @WebMethod.

Affichez votre définition d'interface et également l'entrée SOAP.

Exemple:

Interface:

@WebService 
public interface Service { 

public Address validate(Address address); 

@WebMethod 
public String sayHi(
    @WebParam(mode = WebParam.Mode.IN) 
    String msg); 
} 

Mise en œuvre:

package com.example; 

javax.jws.WebService d'importation;

@WebService(endpointInterface = "com.example.AddressService") 
public class AddressServiceImpl implements AddressService { 

@Override 
public Address validateAdress(Address address) { 
    return address; 
    } 

    @Override 
    public String sayHi(String msg) { 
     return "Vinay"; 
    } 
} 

Espoir l'exemple aide

0

Vous n'avez pas donné beaucoup d'informations. Mais essayez

telnet localhost 8080, pour voir si le service est en cours d'exécution

Si on utilise alors boucle de la ligne de commande pour vérifier que le WSDL est effectivement disponible.

+0

.. Merci pour @ Dave la réponse. Ce service est en cours d'exécution. Ajout de wsdl et d'autres fichiers. Jetez un coup d'oeil s'il vous plait – Patan

Questions connexes