第一步:新建web项目
创建服务接口
public
interface
SayHiService {
public
String sayHi(String jsonStr);
}
其实现类,添加webservice注解
import
javax.jws.WebParam;
import
javax.jws.WebService;
import
javax.jws.soap.SOAPBinding;
@WebService
@SOAPBinding
(style =
SOAPBinding
.Style.
RPC
)
public
class
SayHiServiceImpl
implements
SayHiService {
@Override
public
String sayHi(
@WebParam
(name=
"jsonStr"
) String jsonStr) {
return
"Hi "
+ jsonStr +
", Welcome to WS World!"
;
}
}
服务发布测试类:
import
javax.xml.ws.Endpoint;
public
class
WsServerStart {
public
static
void
main(String[] args) {
SayHiService ws =
new
SayHiServiceImpl();
Endpoint.publish(
"
http://localhost:8080/WebService/hello
"
, ws);
}
}
运行该测试类,在浏览器中输入
http://localhost:8080/WebService/hello
看到如下界面,即为服务发布成功:
第二步:将web服务部署到服务器
在项目WEB-INF下创建2个xml配置文件:
1)sun-jaxws.xml
指定webservice的实现类
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<
endpoints
xmlns
=
"http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version
=
"2.0"
>
<
endpoint
name
=
"HelloWorld"
implementation
=
"com.jow.SayHiServiceImpl"
url-pattern
=
"/hello"
/>
</
endpoints
>
2)web.xml
指定监听器和servlet
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
?>
<!
DOCTYPE
web-app
PUBLIC
"-//Sun Microsystems,
Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd"
>
<
web-app
>
<
listener
>
<
listener-class
>
com.sun.xml.ws.transport.http.servlet.WSServletContextListener
</
listener-class
>
</
listener
>
<
servlet
>
<
servlet-name
>
hello
</
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
>
hello
</
servlet-name
>
<
url-pattern
>
/hello
</
url-pattern
>
</
servlet-mapping
>
<
session-config
>
<
session-timeout
>
120
</
session-timeout
>
</
session-config
>
</
web-app
>
导入jar包:
由于 WSServletContextListener
和
WSServlet 需要引入jar包
导入jaxws-ri-2.2.8下的jar包即可
第三步:部署webservice项目
导出war包,上传至tomcat中webapps目录下即可
验证
在浏览器中输入;
出现以下界面,即为服务部署成功: