2017-10-12 12 views
0

J'ai une question à propos de la création d'un service Web à partir de wsdl avec plusieurs ports. WSDL ressemble à ceci:Création d'un service Web avec plusieurs ports dans WSDL

<?xml version="1.0" encoding="utf-8"?> 
<wsdl:definitions ...> 
... 
    <wsdl:service name="SomeService"> 
     <wsdl:port name="port1" binding="tns:port1"> 
      <soap:address location="http://example.com/port1"/> 
     </wsdl:port> 
     <wsdl:port name="port2" binding="tns:port2"> 
      <soap:address location="http://example.com/port2"/> 
     </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

Comme vous pouvez le voir, il y a deux ports dans un service. Mais après génération de source wsimport, quand j'ouvrir mon service wsdl (http://localhost/myapp/SomeService?wsdl) Je ne vois que l'un de ces ports:

<?xml version="1.0" encoding="utf-8"?> 
<wsdl:definitions ...> 
... 
    <wsdl:service name="SomeService"> 
     <wsdl:port name="port1" binding="tns:port1"> 
      <soap:address location="http://example.com/port1"/> 
     </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

Est-ce que quelqu'un a des idées comment le faire avec plusieurs ports?

Répondre

1

Enfin j'ai eu la réponse there - en ajoutant le fichier sun-jaxws.xml à mon projet.

<?xml version="1.0" encoding="UTF-8"?> 
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> 
<endpoint 
    name="port1" 
    implementation="my.package.port1class" 
    interface="my.package.port1interface" 
    wsdl="WEB-INF/wsdl/wsdl.xml" 
    service="{http://localhost.com/}Service" 
    port="{http://localhost.com/}port1" 
    url-pattern="/service"/> 
<endpoint 
    name="port2" 
    implementation="my.package.port2class" 
    interface="my.package.port2interface" 
    wsdl="WEB-INF/wsdl/wsdl.xml" 
    service="{http://localhost.com/}Service" 
    port="{http://localhost.com/}port2" 
    url-pattern="/service"/> 
</endpoints>