JAX-WS + EJB, Apache TomEE Plus v8, Jboss AS v7

Может кто-нибудь объяснить мне, почему поведение конечных точек службы SOAP отличается в разных реализациях серверов приложений JEE7?

Вот фрагмент кода:

@WebService(targetNamespace = "http://example.org/org.example.samples.api")
public interface SimpleService {

    @WebMethod
    String helloWorld();
}

Вот реализация:

@Stateless
@WebService(portName = "SimpleServicePort", 
serviceName = "SimpleService", 
targetNamespace = "http://example.org/org.example.samples.api", 
endpointInterface = "org.example.samples.api.SimpleService")
public class SimpleServiceImpl implements SimpleService {

    @Override
    public String helloWorld() {
        return "Hello World!";
    }
}

После развертывания файла WAR в Jboss AS v7; путь для WSDL определяется как:

http://localhost:8080/sample-soap-service/SimpleService/SimpleServiceImpl?wsdl

Та же самая WAR при развертывании на TomEE Plus v8; путь для WSDL определяется как:

http://localhost:8080/sample-soap-service/webservices/SimpleServiceImpl?wsdl

Посмотрите на пример, доступный на веб-сайте TomEE: http://tomee.apache.org/examples-trunk/simple-webservice/

также не соответствует указанному выше URL; Согласно примеру, приведенному на их сайте, WSDL должен лежать по следующему пути.

http://localhost:8080/sample-soap-service/SimpleServiceImpl?wsdl

однако это на самом деле доступно под веб- сервисами

Почему существует несоответствие в поведении этих серверов приложений? Может ли кто-нибудь указать мне на документацию, которая описывает это поведение.

Обратите внимание, что это просто пример кода, я понимаю, что для такого метода нет необходимости создавать EJB без сохранения состояния; но для обслуживания мне нужно использовать EJB-сервисы внутри веб-сервиса.

С Уважением,

0 ответов

Другие вопросы по тегам