(十)web服务与javaweb结合(1)
一、解决方法
A . 编写一个监听器,在监听器中发布服务
二、案例一
- 方法A:编写一个监听器,在监听器中发布服务
1. 编写服务接口
- package com.shyroke.service;
- import javax.jws.WebParam;
- import javax.jws.WebResult;
- import javax.jws.WebService;
- @WebService
- public interface IFirst {
- @WebResult(name = "addResult")
- public int add(@WebParam(name = "x") int x, @WebParam(name = "y") int y);
- }
2. 实现服务接口
- package com.shyroke.service;
- import javax.jws.WebParam;
- import javax.jws.WebResult;
- import javax.jws.WebService;
- @WebService(endpointInterface = "com.shyroke.service.IFirst")
- public class IFirstImpl implements IFirst {
- public int add(int x, int y) {
- return x + y;
- }
- }
3. 在监听器中发布
- package com.shyroke.listener;
- import javax.crypto.EncryptedPrivateKeyInfo;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.xml.ws.Endpoint;
- import com.shyroke.service.IFirstImpl;
- public class MyListener implements ServletContextListener {
- public void contextInitialized(ServletContextEvent arg0) {
- System.out.println("项目初始化。。");
- /**
- * 发布服务
- */
- Endpoint.publish("http://localhost:3030/web_webService", new IFirstImpl());
- System.out.println("发布服务。。。。。。");
- }
- public void contextDestroyed(ServletContextEvent arg0) {
- System.out.println("项目销毁。。");
- }
- }
4. 编写servlet
- package com.shyroke.servlet;
- import java.io.IOException;
- import java.io.PrintWriter;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- public class TestServlet extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- this.doPost(req, resp);
- }
- @Override
- protected void doPost(HttpServletRequest request, HttpServletResponse response)
- throws ServletException, IOException {
- request.setCharacterEncoding("UTF-8");
- response.setContentType("text/html;charset=UTF-8");
- PrintWriter out = response.getWriter();
- out.print("这是一个servlet");
- out.flush();
- out.close();
- }
- }
5. web.xml配置监听器和servlet
- <!DOCTYPE web-app PUBLIC
- "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
- "http://java.sun.com/dtd/web-app_2_3.dtd" >
- <web-app>
- <listener>
- <listener-class>com.shyroke.listener.MyListener</listener-class>
- </listener>
- <servlet>
- <servlet-name>testServlet</servlet-name>
- <servlet-class>com.shyroke.servlet.TestServlet</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>testServlet</servlet-name>
- <url-pattern>/servlet/TestServlet</url-pattern>
- </servlet-mapping>
- </web-app>
6. 结果
缺陷
- 通过监听器发布的web服务,web服务的端口和web工程的端口是不能一致的,否则就会报错。
(十)web服务与javaweb结合(1)的更多相关文章
- (十一)web服务与javaweb结合(2)
一.解决问题及解决方法 解决问题:上章节用监听器的方式是有缺陷的:web服务的端口和web工程的端口不能一致. 解决方案:将webService绑定到web工程中,使得共用一个端口. 二.案例 2.1 ...
- (十二) web服务与javaweb结合(3)
一.需求 上一章节虽然将webservice和web项目绑定在了一起,但是还是不能共同一个端口,本章讲解webservice和web项目绑定且共同端口. 二.案例 2.1 创建web工程,并引入依赖 ...
- JavaWeb使用Filter进行字符编码过滤 预防web服务中文乱码
JavaWeb使用Filter进行字符编码过滤 预防web服务中文乱码 准备条件:一个创建好的 JavaWeb 项目 步骤: 1.创建一个类并实现 Filter 接口 import javax.ser ...
- SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- koa 基础(十二)koa-static 静态资源中间件 静态web服务
1.目录 2.app.js /** * koa-static 静态资源中间件 静态web服务 * 1.npm install --save koa-static * 2.const static = ...
- WEB服务-Nginx之十-keepalived
WEB服务-Nginx之10-keepalived 目录 WEB服务-Nginx之10-keepalived Keepalived和高可用 基本概述 Keepalived安装配置 Keepalived ...
- 上传文件服务与web服务分离
业务场景:1. 后端服务为java web应用,使用tomcat容器,多实例集群化部署.2. 前端使用nginx作为后端应用的反向代理. 业务需求:现在需要在java web应用端上传文件,同时还要能 ...
- Rest风格WEB服务(Rest Style Web Service)的真相
http://blog.csdn.net/jia20003/article/details/8365585 Rest风格WEB服务(Rest Style Web Service)的真相 分类: J2E ...
- Spring boot构建基于rest的Web服务
一.介绍:使用Spring Boot我们可以很容易的创建一个可独立运行的Rest web服务,其中内嵌tomact,我们只需“run”就可以查看效果了. Spring Boot利用Gradle或Mav ...
随机推荐
- 图片上传利用request.getInputStream()获取文件流时遇到的问题
图片上传功能是我们web里面经常用到的,获得的方式也有很多种,这里我用的是request.getInputStream()获取文件流的方式.想要获取文件流有两种方式,附上代码 int length = ...
- MacOS系统降级
从MacOS 10.14 降级到 10.12,下载好系统镜像文件.打开,复制到Application. 准备一个至少8G的U盘,,打开磁盘工具,『抹掉』(格式化)成Mac OS扩展(日志式),名称可随 ...
- “kill -9” 和 “kill -15” 有什么不同
来看下图,其中关键参数 -n signum 表示的是信号编码. kill kill 可以用 kill -l 来查看具体有哪些信号编码,这里重点关注 9) SIGKILL 和 15) SIGTE ...
- pytorch加载数据的方法-没弄,打算弄
参考:https://www.jianshu.com/p/aee6a3d72014 # 网络,netg为生成器,netd为判别器 netg, netd = NetG(opt), NetD(opt) # ...
- jenkins参数化构建&HTML报告
背景: 每次构建项目时都需要去修改一下配置,然后保存,再去立即构建.这样修改容易修改出错误,影响到执行脚本,且每次都要去修改配置,不容易修改,操作也比较麻烦.所以决定将Jenkins修改为参数化构建. ...
- 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 ...
- 【Leetcode_easy】628. Maximum Product of Three Numbers
problem 628. Maximum Product of Three Numbers 题意:三个数乘积的最大值: solution1: 如果全是负数,三个负数相乘还是负数,为了让负数最大,那么其 ...
- Docker安装LogonTracer
LogonTracer LogonTracer:是一款用于可视化分析Windows安全事件日志寻找恶意登录的工具.它会将登录相关事件中找到的主机名(或IP地址)和帐户名称关联起来,并将其以图形化的方式 ...
- iOS-NSdata 与 NSString,Byte数组,UIImage 的相互转换
IOS---NSdata 与 NSString,Byte数组,UIImage 的相互转换 1. NSData 与 NSString NSData-> NSString NSString *aSt ...
- 关于cookies、sessionStorage和localStorage解释及区别
在浏览器查看 HTML4的本地存储 cookie 浏览器的缓存机制提供了可以将用户数据存储在客户端上的方式,可以利用cookie,session等跟服务端进行数据交互. 一.cookie和sessio ...