为什么我需要在glassfish 4上使用sun-jaxws.xml文件?

时间:2017-01-30 19:14:10

标签: java-ee glassfish jax-ws

我正在迈向JAX-WS世界的第一步并使用glassfish 4。

我刚刚尝试重建JavaEE7 Oracle Jax-WS示例并拥有以下Web服务:

@WebService
public class Hello {

    @WebMethod
    public String sayHello(String name) {
        System.out.println("Webservice sayHello called...");
        return "Hello " + name;
    }
}

没有更多..我已经将它部署在glassfish上,我可以使用测试器,我可以看到WSDL - 很好。

现在我正在编写应该由JSF2视图调用的客户端..来自bean:

@Named
@RequestScoped
public class HelloServiceClient {

    @WebServiceRef(wsdlLocation="http://localhost:8080/HelloService/HelloService?WSDL")
    private HelloService service;

    public String callHello() {
        Hello helloPort = service.getHelloPort();
        return helloPort.sayHello(" JSF2 View!");
    }

    public String callWSSayHello(String name) {
        Hello helloPort = service.getHelloPort();
        return helloPort.sayHello(name);
    }
}

还有一个简约视图,只需调用callHello()方法并显示结果。

我正在将该应用程序部署到同一个glassfish服务器并出现以下错误:

  

java.io.IOException的:   com.sun.enterprise.admin.remote.RemoteFailureException:发生错误   部署期间:加载应用程序时出现异常:   java.lang.IllegalStateException:ContainerBase.addChild:start:   org.apache.catalina.LifecycleException:   com.sun.xml.ws.transport.http.servlet.WSServletException:WSSERVLET11:   Laufzeitdeskriptor konnte nicht geparst werden:   javax.xml.ws.WebServiceException:Laufzeitdeskriptor   “/WEB-INF/sun-jaxws.xml”fehlt。有关更多信息,请参阅server.log   的信息。

所以我不明白sun-jaxws的概念 - 尽管如此 - oracle文档和示例并没有告诉我任何关于它的事情。

我做错了什么 - 可能在我的IDE或其他任何地方?

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案:

我的IDE自动将WSServlet添加为我的web.xml的监听器 - >如果你从web.xml中删除它,它正在按预期工作。