一、解决方法

  A . 编写一个监听器,在监听器中发布服务

二、案例一

  • 方法A:编写一个监听器,在监听器中发布服务

  1.   编写服务接口

  1. package com.shyroke.service;
  2.  
  3. import javax.jws.WebParam;
  4. import javax.jws.WebResult;
  5. import javax.jws.WebService;
  6.  
  7. @WebService
  8. public interface IFirst {
  9.  
  10. @WebResult(name = "addResult")
  11. public int add(@WebParam(name = "x") int x, @WebParam(name = "y") int y);
  12. }

  2.  实现服务接口

  1. package com.shyroke.service;
  2.  
  3. import javax.jws.WebParam;
  4. import javax.jws.WebResult;
  5. import javax.jws.WebService;
  6.  
  7. @WebService(endpointInterface = "com.shyroke.service.IFirst")
  8. public class IFirstImpl implements IFirst {
  9.  
  10. public int add(int x, int y) {
  11. return x + y;
  12. }
  13.  
  14. }

  3.  在监听器中发布

  1. package com.shyroke.listener;
  2.  
  3. import javax.crypto.EncryptedPrivateKeyInfo;
  4. import javax.servlet.ServletContextEvent;
  5. import javax.servlet.ServletContextListener;
  6. import javax.xml.ws.Endpoint;
  7.  
  8. import com.shyroke.service.IFirstImpl;
  9.  
  10. public class MyListener implements ServletContextListener {
  11.  
  12. public void contextInitialized(ServletContextEvent arg0) {
  13. System.out.println("项目初始化。。");
  14.  
  15. /**
  16. * 发布服务
  17. */
  18.  
  19. Endpoint.publish("http://localhost:3030/web_webService", new IFirstImpl());
  20.  
  21. System.out.println("发布服务。。。。。。");
  22. }
  23.  
  24. public void contextDestroyed(ServletContextEvent arg0) {
  25. System.out.println("项目销毁。。");
  26.  
  27. }
  28.  
  29. }

  4.   编写servlet

  1. package com.shyroke.servlet;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. public class TestServlet extends HttpServlet {
  12.  
  13. @Override
  14. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  15. this.doPost(req, resp);
  16. }
  17.  
  18. @Override
  19. protected void doPost(HttpServletRequest request, HttpServletResponse response)
  20. throws ServletException, IOException {
  21.  
  22. request.setCharacterEncoding("UTF-8");
  23. response.setContentType("text/html;charset=UTF-8");
  24.  
  25. PrintWriter out = response.getWriter();
  26. out.print("这是一个servlet");
  27.  
  28. out.flush();
  29. out.close();
  30.  
  31. }
  32.  
  33. }

  5.  web.xml配置监听器和servlet

  1. <!DOCTYPE web-app PUBLIC
  2. "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
  3. "http://java.sun.com/dtd/web-app_2_3.dtd" >
  4.  
  5. <web-app>
  6.  
  7. <listener>
  8. <listener-class>com.shyroke.listener.MyListener</listener-class>
  9. </listener>
  10.  
  11. <servlet>
  12. <servlet-name>testServlet</servlet-name>
  13. <servlet-class>com.shyroke.servlet.TestServlet</servlet-class>
  14. </servlet>
  15.  
  16. <servlet-mapping>
  17. <servlet-name>testServlet</servlet-name>
  18. <url-pattern>/servlet/TestServlet</url-pattern>
  19. </servlet-mapping>
  20. </web-app>

  6.  结果

  • 缺陷

    •   通过监听器发布的web服务,web服务的端口和web工程的端口是不能一致的,否则就会报错。

(十)web服务与javaweb结合(1)的更多相关文章

  1. (十一)web服务与javaweb结合(2)

    一.解决问题及解决方法 解决问题:上章节用监听器的方式是有缺陷的:web服务的端口和web工程的端口不能一致. 解决方案:将webService绑定到web工程中,使得共用一个端口. 二.案例 2.1 ...

  2. (十二) web服务与javaweb结合(3)

    一.需求 上一章节虽然将webservice和web项目绑定在了一起,但是还是不能共同一个端口,本章讲解webservice和web项目绑定且共同端口. 二.案例 2.1 创建web工程,并引入依赖 ...

  3. JavaWeb使用Filter进行字符编码过滤 预防web服务中文乱码

    JavaWeb使用Filter进行字符编码过滤 预防web服务中文乱码 准备条件:一个创建好的 JavaWeb 项目 步骤: 1.创建一个类并实现 Filter 接口 import javax.ser ...

  4. SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务

    一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  5. koa 基础(十二)koa-static 静态资源中间件 静态web服务

    1.目录 2.app.js /** * koa-static 静态资源中间件 静态web服务 * 1.npm install --save koa-static * 2.const static = ...

  6. WEB服务-Nginx之十-keepalived

    WEB服务-Nginx之10-keepalived 目录 WEB服务-Nginx之10-keepalived Keepalived和高可用 基本概述 Keepalived安装配置 Keepalived ...

  7. 上传文件服务与web服务分离

    业务场景:1. 后端服务为java web应用,使用tomcat容器,多实例集群化部署.2. 前端使用nginx作为后端应用的反向代理. 业务需求:现在需要在java web应用端上传文件,同时还要能 ...

  8. Rest风格WEB服务(Rest Style Web Service)的真相

    http://blog.csdn.net/jia20003/article/details/8365585 Rest风格WEB服务(Rest Style Web Service)的真相 分类: J2E ...

  9. Spring boot构建基于rest的Web服务

    一.介绍:使用Spring Boot我们可以很容易的创建一个可独立运行的Rest web服务,其中内嵌tomact,我们只需“run”就可以查看效果了. Spring Boot利用Gradle或Mav ...

随机推荐

  1. 图片上传利用request.getInputStream()获取文件流时遇到的问题

    图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式.想要获取文件流有两种方式,附上代码 int length = ...

  2. MacOS系统降级

    从MacOS 10.14 降级到 10.12,下载好系统镜像文件.打开,复制到Application. 准备一个至少8G的U盘,,打开磁盘工具,『抹掉』(格式化)成Mac OS扩展(日志式),名称可随 ...

  3. “kill -9” 和 “kill -15” 有什么不同

    来看下图,其中关键参数 -n signum 表示的是信号编码.   kill   kill 可以用 kill -l 来查看具体有哪些信号编码,这里重点关注 9) SIGKILL 和 15) SIGTE ...

  4. pytorch加载数据的方法-没弄,打算弄

    参考:https://www.jianshu.com/p/aee6a3d72014 # 网络,netg为生成器,netd为判别器 netg, netd = NetG(opt), NetD(opt) # ...

  5. jenkins参数化构建&HTML报告

    背景: 每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建. ...

  6. PAT 甲级 1056 Mice and Rice (25 分) (队列,读不懂题,读懂了一遍过)

    1056 Mice and Rice (25 分)   Mice and Rice is the name of a programming contest in which each program ...

  7. 【Leetcode_easy】628. Maximum Product of Three Numbers

    problem 628. Maximum Product of Three Numbers 题意:三个数乘积的最大值: solution1: 如果全是负数,三个负数相乘还是负数,为了让负数最大,那么其 ...

  8. Docker安装LogonTracer

    LogonTracer LogonTracer:是一款用于可视化分析Windows安全事件日志寻找恶意登录的工具.它会将登录相关事件中找到的主机名(或IP地址)和帐户名称关联起来,并将其以图形化的方式 ...

  9. iOS-NSdata 与 NSString,Byte数组,UIImage 的相互转换

    IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换 1. NSData 与 NSString NSData-> NSString NSString *aSt ...

  10. 关于cookies、sessionStorage和localStorage解释及区别

    在浏览器查看 HTML4的本地存储 cookie 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和sessio ...