您的位置:首页 > 运维架构 > Tomcat

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

2016-08-23 09:43 423 查看
学习网址:Java6 WebService的发布     ;     java
调用webservice的各种方法总结

模仿实例,遇见问题记录
1、eclipse建立Dynamic Web Project项目2、编写webService服务

[java] view
plain copy

 print?

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
plain copy

 print?

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
plain copy

 print?

<?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
plain copy

 print?

<%@ 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
plain copy

 print?

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();  

        }  

    }  

}  

运行看是否可以成功访问?  成功即可

问题记录:

访问时的传参我还有点问题,没有运行成功
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐