当前位置 : 主页 > 网页制作 > Nodejs >

【WebService学习过程记录(二)】Java6+Servlet+tomcat发布HelloWord

来源:互联网 收集:自由互联 发布时间:2021-06-24
学习网址:Java6 WebService的发布 ; java 调用webservice的各种方法总结 模仿实例,遇见问题记录 1、eclipse建立Dynamic Web Project项目 2、编写webService服务 [java] view plain copy print ? package lavasoft.

学习网址:Java6 WebService的发布     ;     java 调用webservice的各种方法总结

模仿实例,遇见问题记录

1、eclipse建立Dynamic Web Project项目 2、编写webService服务
[java]  view plain  copy  print ?
  1. package lavasoft.server;  
  2.   
  3. import javax.jws.WebService;  
  4. /** 
  5. * Java开发的WebService服务端 
  6. */  
  7. @WebService  
  8. public class JavaWebService {  
  9.         /** 
  10.          * Web服务中的业务方法 
  11.          * @return 一个字符串 
  12.          */  
  13.         public String doSomething(String username) {  
  14.                 return username + " hello!";  
  15.         }  
  16.         public String doHello() {  
  17.                 return "XFire hello!";  
  18.        }  
  19.  }  
3、开发发布服务的Servlet,为了通用性,最好选择GenericServlet来继承
[java]  view plain  copy  print ?
  1. package lavasoft.servlet;  
  2.   
  3. import lavasoft.server.JavaWebService;  
  4. import javax.servlet.*;  
  5. import javax.xml.ws.Endpoint;  
  6. import java.io.IOException;  
  7.   
  8. /** 
  9. * 发布Java WebService的Servlet 
  10. */  
  11. public class WSServlet extends GenericServlet {  
  12.     private static final long serialVersionUID = 1L;  
  13.         @Override  
  14.         public void init(ServletConfig servletConfig) throws ServletException {  
  15.                 super.init(servletConfig);  
  16.                 System.out.println("准备启动WebService服务");  
  17.                 //发布一个WebService  
  18.                 Endpoint.publish("http://localhost:8888/javaws/JavaWebService"new JavaWebService());  
  19.                 System.out.println("已成功启动WebService服务");  
  20.         }  
  21.         public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {  
  22.                 System.out.println("此Servlet不处理任何业务逻辑,仅仅用来发布一个Web服务");  
  23.         }  
  24. }  
4、配置web.xml
[html]  view plain  copy  print ?
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app xmlns="http://java.sun.com/xml/ns/javaee"  
  3.                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.                  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee  
  5.         http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"  
  6.                  version="2.5">  
  7.         <welcome-file-list>  
  8.                 <welcome-file>index.jsp</welcome-file>  
  9.         </welcome-file-list>  
  10.         <servlet>  
  11.                 <servlet-name>WSServlet</servlet-name>  
  12.                 <servlet-class>lavasoft.servlet.WSServlet</servlet-class>  
  13.                 <load-on-startup>1</load-on-startup>  
  14.         </servlet>  
  15.         <servlet-mapping>  
  16.                 <servlet-name>WSServlet</servlet-name>  
  17.                 <url-pattern>/servlet/WSServlet</url-pattern>  
  18.         </servlet-mapping>  
  19. </web-app>  
注意:
<load-on-startup>1</load-on-startup>,这样写的目的是Servlet能伴随容器的启动在第一时间加载。以便服务能尽可能早的发布,否则,只有在第一次请求该Servlet的时候,才会被加载到容器。
web.xml配置与java文件所在包要一致
发布端口与tomcat端口最好不要重复
5、初始页index.jsp
[java]  view plain  copy  print ?
  1. <%@ page language="java" contentType="text/html; charset=utf-8"%>  
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  3. <html>  
  4.     <head>  
  5.         <title>展示</title>  
  6.     </head>  
  7.     <body>  
  8.         <div>  
  9.         <h1>这是一个测试java WebService发布服务的例子</h1>  
  10.         <a href="http://localhost:8888/javaws/JavaWebService">点此处访问WSDL</a>  
  11.         </div>  
  12.     </body>  
  13. </html>  
6、启动Tocmat 浏览器中输入:http://localhost/JavaWebService/  成功访问即可

(我的tomcat没有端口)

7、客户端调用

建立一个简单的空项目,一个类

[java]  view plain  copy  print ?
  1. import java.net.URL;  
  2. import org.codehaus.xfire.client.Client;  
  3.   
  4. public class XFireTest {  
  5.   
  6.     public static void main(String[] args) {  
  7.         try {  
  8.             Client c = new Client(new URL(  
  9.                     "http://localhost:8888/javaws/JavaWebService?wsdl"));  
  10.             Object[] results = c.invoke("doHello"new Object[0]);  
  11.             System.out.println(results.length);  
  12.             for (Object one : results) {  
  13.                 System.out.println("1 结果是:" + one);  
  14.             }  
  15.         } catch (Exception e) {  
  16.             e.printStackTrace();  
  17.         }  
  18.     }  
  19. }  
运行看是否可以成功访问?  成功即可

问题记录:

访问时的传参我还有点问题,没有运行成功

网友评论