加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-16 22:49:26 所属栏目:安全 来源:网络整理
导读:模仿实例,遇见问题记录 1、eclipse建立Dynamic Web Project项目2、编写webService服务 [java] view plaincopyprint? package lavasoft.server; import javax.jws.WebService; /** * Java开发的WebService服务端 */ @WebService public class JavaWebService

模仿实例,遇见问题记录

1、eclipse建立Dynamic Web Project项目2、编写webService服务

[java] view plaincopyprint?
package lavasoft.server;  

import javax.jws.WebService;  
/** * Java开发的WebService服务端 */  
@WebService  
public class JavaWebService {  
        /** * Web服务中的业务方法 * @return 一个字符串 */  
        public String doSomething(String username) {  
                return username + " hello!";  
        }  
        public String doHello() {  
                return "XFire hello!";  
       }  
 }

3、开发发布服务的Servlet,为了通用性,最好选择GenericServlet来继承

[java] view plaincopyprint?
package lavasoft.servlet;  

import lavasoft.server.JavaWebService;  
import javax.servlet.*;  
import javax.xml.ws.Endpoint;  
import java.io.IOException;  

/** * 发布Java WebService的Servlet */  
public class WSServlet extends GenericServlet {  
    private static final long serialVersionUID = 1L;  
        @Override  
        public void init(ServletConfig servletConfig) throws ServletException {  
                super.init(servletConfig);  
                System.out.println("准备启动WebService服务");  
                //发布一个WebService 
                Endpoint.publish("http://localhost:8888/javaws/JavaWebService",new JavaWebService());  
                System.out.println("已成功启动WebService服务");  
        }  
        public void service(ServletRequest servletRequest,ServletResponse servletResponse) throws ServletException,IOException {  
                System.out.println("此Servlet不处理任何业务逻辑,仅仅用来发布一个Web服务");  
        }  
}

4、配置web.xml

[html] view plaincopyprint?
<?xml version="1.0" encoding="UTF-8"?>  
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">  
        <welcome-file-list>  
                <welcome-file>index.jsp</welcome-file>  
        </welcome-file-list>  
        <servlet>  
                <servlet-name>WSServlet</servlet-name>  
                <servlet-class>lavasoft.servlet.WSServlet</servlet-class>  
                <load-on-startup>1</load-on-startup>  
        </servlet>  
        <servlet-mapping>  
                <servlet-name>WSServlet</servlet-name>  
                <url-pattern>/servlet/WSServlet</url-pattern>  
        </servlet-mapping>  
</web-app>

注意:
<load-on-startup>1</load-on-startup>,这样写的目的是Servlet能伴随容器的启动在第一时间加载。以便服务能尽可能早的发布,否则,只有在第一次请求该Servlet的时候,才会被加载到容器。
web.xml配置与java文件所在包要一致
发布端口与tomcat端口最好不要重复
5、初始页index.jsp

[java] view plaincopyprint?
<%@ page language="java" contentType="text/html; charset=utf-8"%>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html>  
    <head>  
        <title>展示</title>  
    </head>  
    <body>  
        <div>  
        <h1>这是一个测试java WebService发布服务的例子</h1>  
        <a href="http://localhost:8888/javaws/JavaWebService">点此处访问WSDL</a>  
        </div>  
    </body>  
</html>

6、启动Tocmat浏览器中输入:http://localhost/JavaWebService/ 成功访问即可
(我的tomcat没有端口)

7、客户端调用
建立一个简单的空项目,一个类

[java] view plaincopyprint?
import java.net.URL;  
import org.codehaus.xfire.client.Client;  

public class XFireTest {  

    public static void main(String[] args) {  
        try {  
            Client c = new Client(new URL(  
                    "http://localhost:8888/javaws/JavaWebService?wsdl"));  
            Object[] results = c.invoke("doHello",new Object[0]);  
            System.out.println(results.length);  
            for (Object one : results) {  
                System.out.println("1 结果是:" + one);  
            }  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
    }  
}

运行看是否可以成功访问? 成功即可
问题记录:

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读