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-сервисы внутри веб-сервиса.
С Уважением,