说明
在sun-jaxws.xml文件,可以配置endpoint、handler-chain等内容。在这个文件中配置的内容会覆盖在Java代码中使用注解属性配置的的内容。
这个文件根据自己的项目内容修改完成以后,作为web应用的一部分部署到web容器中(放到web应用的WEB-INF目录下,和web.xml文件放到同一个目录下面):
这个文件可以自己从头编写,也可以在样例的基础上修改。
如果要找样例文件,可以从下面官网下载实现的独立发布包:https://eclipse-ee4j.github.io/metro-jax-ws/
解压后,在samples目录下的每个样例中都能找到这个文件,例如:
内容示例:
csharp
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 1997, 2019 Oracle and/or its affiliates. All rights reserved.
This program and the accompanying materials are made available under the
terms of the Eclipse Distribution License v. 1.0, which is available at
http://www.eclipse.org/org/documents/edl-v10.php.
SPDX-License-Identifier: BSD-3-Clause
-->
<endpoints
xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint
name="catalog"
interface="catalog.server.AddNumbersPortType"
implementation="catalog.server.AddNumbersImpl"
wsdl="WEB-INF/wsdl/AddNumbers.wsdl"
service="{http://example.com}AddNumbersService"
port="{http://example.com}AddNumbersPort"
url-pattern="/addnumbers" />
</endpoints>
sun-jaxws.xml文件中可以包含多个endpoint
endpoint就是web服务的端点。在sun-jaxws.xml文件中可以包含多个endpoint。
示例:例如有两个RESTful的web服务,sun-jaxws.xml文件的内容:
csharp
<?xml version="1.0" encoding="UTF-8"?>
<endpoints
xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
<endpoint
name="power-restful-addnumbers"
implementation="com.thb.server.AddNumbersImpl"
url-pattern="/addnumbers/*" />
<endpoint
name="power-restful-addnumbers2"
implementation="com.thb.server.AddNumbers2"
url-pattern="/addnumbers2/*" />
</endpoints>
web.xml文件中的内容:
csharp
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="6.0" xmlns="https://jakarta.ee/xml/ns/jakartaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd">
<description>restful</description>
<display-name>restful</display-name>
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<description>JAX-WS endpoint - restful</description>
<display-name>restful</display-name>
<servlet-name>restful-addnumbers</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>restful-addnumbers</servlet-name>
<url-pattern>/addnumbers/*</url-pattern>
<url-pattern>/addnumbers2/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>60</session-timeout>
</session-config>
</web-app>
部署到tomcat以后:
访问服务1:
访问服务2: