2010-09-15 16 views
0

Je sais qu'il est possible de créer un jaxws: endpoint sans le SEI, tant que vous avez le wdslURL, serviceName & endpointName, adresse.Utilisation de Spring XML, création d'un client JAX-WS sans serviceClass

Je vois beaucoup d'exemples sur wsdl2java, puis en utilisant cette valeur de classe en tant qu'attrib de classe de service. Et beaucoup d'exemples basés sur Java, je suis plus intéressé par le XML basé sur le printemps.

Par exemple, voici ce que j'ai actuellement où il ne me aime pas:

<jaxws:client id="jaxwsIngest" xmlns:n="webservice.ingest" 
      address="http://localhost:8088/IngestService" 
      wsdlLocation="http://localhost:8088/IngestService?WSDL" 
      serviceName="n:IngestService" 
      endpointName="n:IngestServicePort"> 
      <jaxws:properties> 
        <entry key="dataFormat" value="PAYLOAD"/> 
      </jaxws:properties> 
    </jaxws:client> 

Est-il possible de faire quelque chose de similaire comme JAXWS: point final à JAXWS: client? En réalité, tout ce que j'ai est un fichier WSDL & l'adresse IP du WebService.

Existe-t-il un moyen d'interroger et d'obtenir la valeur serviceClass via un GET? Comme comment nous faisons http: //? WSDL

Tous les exemples que je vois semblent suggérer que serviceClass attr est requis.

Merci à l'avance, Aaron

Répondre

0

Puisque cette question est ouverte au bout de 2 mois, je sens que je peux donner une réponse malgré ma connaissance rare du fonctionnement interne de JAX-WS (et pas de ressort).

La raison pour laquelle vous avez besoin d'une classe de service est que les fonctions getPort sont génériques et renverront une instance de cette classe (ou probable, interface). Cette classe est générée en digérant le wsdl (vérifiez les ant's wsconsume). C'est l'interface pour faire des appels au webservice. Plus de détails: http://java.sun.com/developer/technicalArticles/J2SE/jax_ws_2/

Autres réponses qui sont utiles:

JAX-WS client : what's the correct path to access the local WSDL?

JAX-WS Loading WSDL from jar

Si vous voulez voulez générer votre ServiceClass à la volée sans une copie locale de l'interface alors vous besoin de faire des trucs de réflexion super fantaisie. C'est au-delà de moi et de la plupart de Google, bien que j'ai vu quelques messages de personnes faisant cela pour leur thèse.