在jax-ws中配置访问Wsdl的端点地址

时间:2010-03-03 15:36:09

标签: java web-services java-ee glassfish jax-ws

我是jax-ws的网络服务的新手,我和其他人有点混淆 文件。我正在做一个简单的问候测试,我正在尝试解释一些事情。

我在Glassfish上成功安装了我的Web服务。我还用独立的javaoutside服务器测试了它。我的例子来自javaee5教程示例中的helloservice。 (http://java.sun.com/javaee/5/docs/tutorial/doc/docinfo.html

在web.xml中,我有这个部分:

...
    <servlet-mapping>
        <servlet-name>HelloService</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
...
在sun-jaxws.xml中

...
    <endpoint
        name='HelloService'
        implementation='helloservice.endpoint.Hello'
        url-pattern='/hello'/>
...

并在sun-web.xml中:

...
  <context-root>/helloservice</context-root>
...

我看到web.xml中指定的上下文根与sun-jaxws.xml中的上下文根相同。

  1. sun-web.xml中的上下文根,是否重要或仅用于EAR文件?

  2. 我可以从2个不同的地址访问我的wsdl文件: http://localhost:8080/helloservice/hello?wsdl http://localhost:8080/helloservice/HelloService?wsdl 我无法解释第二个问题。它从何而来 ? 它是端点地址的配置吗? 为什么我们可以通过上下文和服务名称两种方式访问​​Web服务? 请向我解释

  3. 由于

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式为您的服务配置网址,在您的项目中,您可以在3个不同的位置定义网址,大多数时候在多个地方定义某些内容并不是一个好主意。
因为您已经为服务定义了两条不同的路径,一条用于jax-ws,另一条用于sun-web(glassfish配置文件),最终会定义到同一服务。