2010-12-15 23 views
0

Je tente d'apprendre les services Web Axis2 et je travaille sur un tutoriel sur le site Web RoseIndia (link text). Dans l'exemple pour le client, il génère les stubs en utilisant wsdl2java, et il génère les stubs qui utilisent http://localhost:8080, cependant, quand je le fais, il crée les stubs pour utiliser les liens sécurisés https://localhost:8443. Je n'ai pas installé SSL sur mon serveur d'application de développement local (Tomcat).Comment générer des stubs non sécurisés dans Axis2 à l'aide de wsdl2java

J'ai vérifié la documentation de wsdl2java et je ne trouve aucune référence aux paramètres de sécurité. Comment puis-je faire de ces talons utilisent les références de base http://localhost:8080

+0

Le truc RoseIndia est assez mauvais, je vous conseillerais de trouver une source différente pour les tutoriels. – skaffman

Répondre

0

Regardez votre fichier WSDL. Dans Axis2 1.5 l'outil wsdl2java utilisera ce port SOAP1.2 pour générer le noeud final cible pour votre talon:

<wsdl:port name="HelloWorldServiceHttpSoap12Endpoint" binding="ns:HelloWorldServiceSoap12Binding"> 
    <soap12:address location="http://localhost:8082/axis2/services/HelloWorldService.HelloWorldServiceHttpSoap12Endpoint/" /> 
</wsdl:port> 

Vous pouvez utiliser l'option -pn de wsdl2java si vous avez besoin d'utiliser un autre port.

Téléchargez votre fichier WSDL localement et vérifiez que la section du port est correcte (pas de https). Générez en outre les sources avec wsdl2java, par ex. sur ma machine:

[email protected]:~/axis2-1.5.1/bin> ./wsdl2java.sh -uri /home/lucho/sayhello.wsdl 
Using AXIS2_HOME: /home/lucho/axis2-1.5.1 
Using JAVA_HOME:  /opt/jdk1.6.0_18 
Using JAVA_OPTS: -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n 
Retrieving document at '/home/lucho/sayhello.wsdl'. 

Vérifiez maintenant votre stub généré, vous devriez voir quelque chose comme ceci dans le cas où votre WSDL ressemble à la mienne:

/** 
* Default Constructor 
*/ 
public HelloWorldServiceStub() throws org.apache.axis2.AxisFault { 
     this("http://localhost:8082/axis2/services/HelloWorldService.HelloWorldServiceHttpSoap12Endpoint/"); 
} 

Ensuite, dans votre code de test vous pouvez également utiliser un constructeur pour votre talon qui prend le point final cible. En fait, je préfère cette approche parce que le client WS est plus flexible pour les changements dans le réseau cible. Pour votre question devrait être quelque chose comme:

public HelloWorldServiceStub(java.lang.String targetEndpoint) 

Et last but not least, je vous recommande ce livre pour rapide tutoriel de démarrage SOAP Attachments using apache axis2

Cheerz!