Определить имя привязки в JAX-WS - PullRequest
2 голосов
/ 20 января 2011

Я занимаюсь разработкой JAX-WS WebService, и в настоящее время мне нужно определить пользовательское имя Binding, поскольку оно определяется как имя порта с добавленным к нему «Binding».

Например: если Порт имя MyJAXService Binding Имя будет MyJAXServiceBinding по умолчанию.Я хотел, чтобы имя Binding было похожим на MyJAXService .

В моем веб-сервисе аннотация @WebService определена следующим образом:

@WebService(serviceName = "MyJAXService", portName = "MyJAXService", endpointInterface = "com.test.MyJAXService", targetNamespace = "http://test.local/")

Ответы [ 2 ]

4 голосов
/ 24 января 2011

Я полагаю, что вы используете подход Java к WSDL , поэтому вы хотите сгенерировать WSDL из ваших артефактов.

Я обычно использую другой подход, WSDL to Java и, для WSDL, например:

<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="http://mynamespace" xmlns="http://schemas.xmlsoap.org/wsdl/"  targetNamespace="http://mynamespace">
  ...
  <portType name="MySoapBinding">
    <operation name="MyOperation">
        ...
    </operation>
  </portType>
  <binding name="MySoapBinding" type="ns:MySoapBinding">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <operation name="MyOperation">
        ...
    </operation>
  </binding>
  <service name="MyService">
    <port name="MySoapBinding" binding="ns:MySoapBinding">
      <soap:address location="http://localhost:8080/MyService"/>
    </port>
  </service>
</definitions>

Сгенерированы следующие артефакты:

@WebService(name = "MySoapBinding", targetNamespace = "http://mynamespace")
public interface MySoapBinding {
    ...
}

иреализация:

@WebService(name = "MySoapBinding", targetNamespace = "http://mynamespace", endpointInterface = "my.package.MySoapBinding", serviceName = "MyService", portName = "MySoapBinding")
public class MySoapBindingImpl
    implements MySoapBinding
{
}

Я полагаю, что вы можете попытаться дать имя интерфейсу веб-службы, и сгенерированный WSDL должен использовать это имя в качестве Binding name.

0 голосов
/ 24 января 2011

Создайте понравившийся вам WDSL, запустите wsdl2java, посмотрите, какие sn @ ils включены в сгенерированный код, используйте их.

...