zoukankan      html  css  js  c++  java
  • (十)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工程的端口是不能一致的,否则就会报错。 
  • 相关阅读:
    python 实例方法、静态方法、类方法的区别
    locust 参数化实现
    Airtest 基于图像识别的自动化测试工具
    python 调用 dubbo 接口
    locust+geventhttpclient 性能优化
    python性能测试工具locust
    性能测试工具 wrk
    jmeter 参数化,关联参数,断言等使用说明
    Django上传excel表格并将数据写入数据库
    小程序 wx.uploadFile 上传文件 iOS 失败 400 错误排查
  • 原文地址:https://www.cnblogs.com/shyroke/p/7660823.html
Copyright © 2011-2022 走看看