Как заставить Glassfish соблюдать определение endpoint-address-uri? - PullRequest
1 голос
/ 29 марта 2012

Кажется, что Glassfish 3 развертывает мой веб-сервис Java EE 6 по неправильному URL-адресу, когда я использую определение endpointInterface, и я не могу понять, почему.Это то, что я дошел до этого:

У меня есть определение веб-службы, подобное следующему:

@WebService(name = "HelloService")
public interface HelloService
{
    @WebMethod
    String sayHello(String name);
}

И реализация службы как EJB без сохранения состояния:

@WebService(serviceName = "HelloWebService", portName = "HelloServicePort", endpointInterface = "helloServicePackage.HelloService")
@Stateless
public class HelloServiceImpl implements HelloService
{
    public String sayHello(String name)
    {
        return "Hello " + name;
    }
}

Для развертывания на Glassfish я использую sun-ejb-jar.xml:

<sun-ejb-jar>
    <enterprise-beans>
    <ejb>
            <ejb-name>HelloServiceImpl</ejb-name>
            ...
            <webservice-endpoint>
                <port-component-name>
                    HelloService
                </port-component-name>
                <endpoint-address-uri>
                    Services/HelloService
                </endpoint-address-uri>
            </webservice-endpoint>
        </ejb>
    </enterprise-beans>
</sun-ejb-jar>

Затем Gassfish развертывает мой сервис по URL-адресу // HelloWebService / HelloServiceImpl, что не является тем, что я намеревался.

Однако, если я опускаю определение endpointInterface и использую имя в реализации службы напрямую, например

@WebService(serviceName = "HelloWebService", portName = "HelloServicePort", name= "HelloService")
@Stateless
public class HelloServiceImpl
{
    @WebMethod
    public String sayHello(String name)
    {
        return "Hello " + name;
    }
}

, тогда служба правильно развертывается в // Services / HelloService

Как мнеНужно изменить annotations / sun-ejb-jar.xml, чтобы развертывание также работало с использованием endpointInterface?

С уважением, Тилман

...