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

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

发布时间:2020-12-16 22:04:51 所属栏目:安全 来源:网络整理
导读:学习网址:Java6 WebService的发布?? ? ; ????java 调用webservice的各种方法总结 模仿实例,遇见问题记录 1、eclipse建立Dynamic Web Project项目 2、编写webService服务 [java] ? view plain ?copy ?print ? package ?lavasoft.server;?? ?? import ?java

学习网址: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来继承
copy
?package?lavasoft.servlet;??
  • import?lavasoft.server.JavaWebService;??
  • import?javax.servlet.*;??
  • import?javax.xml.ws.Endpoint;??
  • import?java.io.IOException;??
  • ??
  • *?发布Java?WebService的Servlet?
  • class?WSServlet?extends?GenericServlet?{??
  • ????private?static?final?long?serialVersionUID?=?1L;??
  • ????????@Override??
  • void?init(ServletConfig?servletConfig)?throws?ServletException?{??
  • super.init(servletConfig);??
  • ????????????????System.out.println("准备启动WebService服务");??
  • ????????????????//发布一个WebService??
  • ????????????????Endpoint.publish("http://localhost:8888/javaws/JavaWebService",?new?JavaWebService());??
  • "已成功启动WebService服务");??
  • ????????}??
  • void?service(ServletRequest?servletRequest,?ServletResponse?servletResponse)?throws?ServletException,?IOException?{??
  • "此Servlet不处理任何业务逻辑,仅仅用来发布一个Web服务");??
  • }??
  • 4、配置web.xml
    [html]? copy
    ??
      <?xml?version="1.0"?encoding="UTF-8"?>??
    1. <web-app?xmlns="http://java.sun.com/xml/ns/javaee"??
    2. ?????????????????xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"??
    3. ?????????????????xsi:schemaLocation="http://java.sun.com/xml/ns/javaee??
    4. ????????http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"??
    5. ?????????????????version="2.5">??
    6. ????????welcome-file-list>??
    7. ????????????????welcome-file>index.jsp</servletservlet-name>WSServletservlet-class>lavasoft.servlet.WSServletload-on-startup>1servlet-mappingurl-pattern>/servlet/WSServletweb-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"%>??
    1. <!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">??
    2. <html>??
    3. ????<head>??
    4. ????????<title>展示</title>??
    5. ????</head>??
    6. ????<body>??
    7. ????????<div>??
    8. ????????<h1>这是一个测试java?WebService发布服务的例子</h1>??
    9. ????????<a?href="http://localhost:8888/javaws/JavaWebService">点此处访问WSDL</a>??
    10. ????????</div>??
    11. ????</body>??
    12. </html>??
    6、启动Tocmat 浏览器中输入:http://localhost/JavaWebService/ ?成功访问即可

    (我的tomcat没有端口)

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

    copy
    ?import?java.net.URL;??
  • import?org.codehaus.xfire.client.Client;??
  • class?XFireTest?{??
  • void?main(String[]?args)?{??
  • try?{??
  • ????????????Client?c?=?new?Client(new?URL(??
  • ????????????????????"http://localhost:8888/javaws/JavaWebService?wsdl"));??
  • ????????????Object[]?results?=?c.invoke("doHello",255); font-weight:bold; background-color:inherit">new?Object[0]);??
  • ????????????System.out.println(results.length);??
  • ????????????for?(Object?one?:?results)?{??
  • "1?结果是:"?+?one);??
  • ????????????}??
  • ????????}?catch?(Exception?e)?{??
  • ????????????e.printStackTrace();??
  • ????}??
  • 运行看是否可以成功访问?? 成功即可

    问题记录:

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

  • (编辑:李大同)

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

      推荐文章
        热点阅读