Idea14 生成webservices
一直为idea生成soap协议的webservices而纠结,当初做axis2的时候,用的是eclipse,用它的插件来生成。
这次做短信平台,决定要换一下,因为eclipse用axis2生成的接口,会增加很多无用的东西在WEB-INF下面。
摸索一下,招到了一些方法,这里记录下 。
配置项目
Idea中,配置项目,最常用的键,就是F4了。打开项目结构(Project Structure),其他配置好,然后在Facets中,增加一个Webservices。
下拉选项中,选择所需要的实现方式即可。我这里这次用的是JAX_WS RI 2.2,是glassfish的产品。
增加后,项目就有了WebServices的功能。
此时,会自动将下载的jar包放入工程,在web.xml中生成JAX-WS的配置信息。同时,也在WEB-INF下生成一个sun-jaxws.xml文件,不过里面目前是空白的,只有一个头。
生成服务类。
在自己的包下面,new一个webservices,然后输入自己的类名称即可,就会生成一个应用主类。例如:
@WebService()publicclassHelloWorld{@WebMethodpublicString sayHelloWorldFrom(String from){String result ="Hello, world, from "+ from;System.out.println(result);return result;}publicstaticvoid main(String[] argv){Object implementor =newHelloWorld();String address ="http://localhost:9000/HelloWorld";Endpoint.publish(address, implementor);}}
同时,在sun-jaxws.xml中,也生成了一段内容,对应刚刚生成的这个服务类。
运行该类,输入address在浏览器,可以看到服务列表,其中有一个http://localhost:9000/HelloWorld?wsdl ,即是提供为其他人的wsdl文件。
客户端验证
至此,我们可以写一个客户端,调用一下即可。具体的写法,可以参照之前本博客记录的一篇日志: JAX_WS 2.2 规范的webservices客户端实现(Axis2,Cxf)
话外篇
当使用这种方式时,有时候需要获取到客户端的ip信息,可以参照以下代码,这里以我发送短信为例:
import com.sun.net.httpserver.HttpExchange;import com.sun.xml.ws.developer.JAXWSProperties;import javax.annotation.Resource;import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.ws.Endpoint;import javax.xml.ws.WebServiceContext;import javax.xml.ws.handler.MessageContext;import java.net.InetSocketAddress;/** Created by wang on 2015/5/8.*/@WebService()publicclassSendSms{@ResourceWebServiceContext webServiceContext;@WebMethodpublicString sayHelloWorldFrom(String from){MessageContext mc = webServiceContext.getMessageContext();HttpExchange exchange =(HttpExchange) mc.get(JAXWSProperties.HTTP_EXCHANGE);InetSocketAddress remoteAddress = exchange.getRemoteAddress();String remoteHost = remoteAddress.getHostName();System.out.println("Client Host name :"+remoteHost);String result ="Hello, world, from "+ from;System.out.println(result);return result+",nice work";}publicstaticvoid main(String[] argv){Object implementor =newSendSms();String address ="http://localhost:9000/SendSms";Endpoint.publish(address, implementor);}}
这里不要导入错了包,以上代码,有很多个同名的包存在。
好了,所有就这些,用这种方式生成的webservices,简洁了太多,代码简洁,项目结构也简洁,很推荐这种方式。
Idea14 生成webservices的更多相关文章
- Cordys BOP 4平台开发入门实战演练——Webservices开发(0基础)
0.文章导读 本文档针对Cordys BOP-4 WS-AppServer基础功能进行验证和高速开发指导.(高级实践文档请參考兴许文档). 0.1.WS-AppServer概述 WS-AppServe ...
- WebService流行框架CXF
CXF官方网址:http://cxf.apache.org/ CXF官方网址:官网学习地址:http://cxf.apache.org/docs/index.html 官网下载cxf压缩文件: ...
- Oracle 11g数据库详解(2)
FAILED_LOGIN_ATTEMPTS 用于指定连续登陆失败的最大次数 达到最大次数后,用户会被锁定,登陆时提示ORA-28000 UNLIMITED为不限制 精确无误差 是 实时 PASSWOR ...
- cxf ServerFactoryBean 生成基于soap1.2的WebServices
//获得服务工厂bean ServerFactoryBean bean = new ServerFactoryBean(); HTTPTransportFactory httpTransportFac ...
- WebServices生成发布过程及常见问题的解决方法
春夏秋冬走健康之路看四季养生网 健康饮食 养生问题 母婴保健 养生小常识 3.下一步,我们需要将Myservice文件夹拷贝到C:\Inetpub\wwwroot目录下(重要).如下图所示 然后依次 ...
- .net webservices 代理类生成命令
wsdl.exe /l:cs /out:d:/WxPayment.cs http://localhost/WxPayment.asmx
- webServices与Web服务
本篇的内容在MSND中标注已是一项旧技术,而取而代之的是WCF, 那么我也放弃吧!但是这个属于Web服务的范畴,而WCF本质上也是一个Web服务来的,所以对于基础的东西还是不变的.那么这次就着重看看这 ...
- c# 动态调用.net编写的webservices接口
创建类WebServiceHelper: public class WebServiceHelper { #region 动态调用WebService动态调用地址 /// < summary&g ...
- Intellij IDEA 根据数据库自动生成pojo和hbm
新建一个项目,每次写hibernate部分,就觉得pojo和hbm.xml部分很蛋疼.今天搜索了半天,终于知道如何根据数据库自动生成了. Intellij IDEA14创建maven时并不能勾选各种支 ...
随机推荐
- Spring ApplicationContext(十)finishRefresh
ApplicationContext(十)finishRefresh Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) 经过 ...
- [linux]Linux如何查看文件中的中间部分内容
最基本的是cat.more和less. 1. 如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 2. 如果你想查看文件的后10行,可以使用tail命令,如: ...
- contenteditable设置元素可编辑
需求背景 实现一个输入框,高度可以随着输入文字的增加而自动增高 有placeholder,输入为空时,显示placeholder 我们知道可以将div的contenteditable设置伪true,将 ...
- 如何在Eclipse下安装SVN插件——subclipse
如何在Eclipse下安装SVN插件——subclipse | 浏览:2799 | 更新:2014-09-20 22:39 1 2 3 4 5 6 分步阅读 版本控制是开发人员必不可少的工具,而SVN ...
- ContextMune上下文菜单中,二级菜单获取及状态设置
ContextMune上下文菜单中,二级菜单获取及状态设置 在使用ContextMune上下文菜单中,能够通过二级菜单来获取及状态设置 //二级菜单获取和状态设置((ToolStripDropDown ...
- 13个开源GIS软件 你了解几个?
地理信息系统(Geographic Information System,GIS)软件依赖于覆盖整个地球的数据集.为处理大量的 GIS 数据及其格式,编程人员创建了若干开源库和 GIS 套件. GIS ...
- word表格如何实现序号自动填充
打开word文档,我们需要在如下表格中的准考证号这一列中输入准考证号,手工输入肯定很慢,且容易出错. 我们先选中需要填充准考证号的表格. 选择功能区域中的“开始”,在“段落”组中点击“编号”按 ...
- kbmmw 5.02发布
5.02.00 May 27 2017 Important notes (changes that may break existing code) ========================= ...
- JSP错误
1.<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncodin ...
- powerdesiginer 生成oracle脚本问题,一步解决
select * from tablename时, 总是提示错误:table or view does not exits 但是在user_tables中却可以看到刚建立的表. 原因是powerDes ...