应用配置:
- Web 应用程序使用 java 第一种方法创建带有注释的 JAX-WS 2.0 Web 服务。
- 网络逻辑 10.3
我的要求
我的要求是部署单个 Web 服务实现类,但根据访问服务的 URL 更改逻辑。
问题: 我假设这样做的一个好方法是在 web.xml 中部署不同的映射并使用不同的参数对其进行初始化。有没有更好的办法?
关闭访问 Web 服务的 URL 的逻辑的最佳方法是什么?我应该尝试使用初始化参数在 web.xml 中配置两个 servlet 映射(尝试过,但无法使其工作),还是应该解析服务 impl 中的 URL?还有其他选择吗?
我试过的(但没有用)
我已经尝试在 web.xml<init-param>
的<servlet>
元素中添加。但是,无法访问ServletConfig
Web 服务内的对象来检索参数。Web 服务不具备标准的所有功能Servlet
(即使我实现了Servlet
或ServletContextListener
)。我只能访问WebServiceContext
(似乎)并且从那里我只能获取<context-param>
元素——但我需要<init-param>
元素。
在 web.xml 中,我<servlet>
使用相同的 Java 类输入两个元素,但它们映射到两个不同的 URL,如下所示。注意每个 Servlet 映射中的“源”参数是如何不同的。
<servlet>
<servlet-name>Foo</servlet-name>
<servlet-class>com.Foo</servlet-class>
<init-param>
<param-name>source</param-name>
<param-value>1</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Foo</servlet-name>
<url-pattern>/Foo</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Bar</servlet-name>
<servlet-class>com.Foo</servlet-class>
<init-param>
<param-name>source</param-name>
<param-value>2</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Bar</servlet-name>
<url-pattern>/Bar</url-pattern>
</servlet-mapping>