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工程的端口是不能一致的,否则就会报错。 
  • 相关阅读:
    2017-3-31 操作属性 定时器 操作内容 操作相关元素 元素创建添加删除
    2017-3-30 Js实现导航栏,选项卡,图片轮播的制作
    2017-3-30 DOM查找元素 点击,鼠标移入,移除事件 样式控制
    Js产生随机数的几种方法
    2017-3-29 Js语法 DOM操作
    纯【css下拉菜单】
    2017-3-25 css样式表 去除按钮点点击是的绿色边框
    2017-3-23 网页中的表单 框架 标题栏小图标 描点 插入视频音频 简单的滚动条 css样式表
    【2017-2-21】C#分支语句,分支嵌套,变量的作用域
    【2017-2-20】C#运算符
  • 原文地址:https://www.cnblogs.com/shyroke/p/7660823.html
Copyright © 2011-2022 走看看