近日在熟悉webservice发布的过程,此处主要讲解xfire方式。
1.使用idea新建一个web项目
步骤1:

按照图中的指定序号建立对应的web项目即可。

步骤2:

填写组织ID和具体项目id,点击进行“下一步”即可。
步骤3:


设置相关参数,例如maven所在的位置,可以选择idea集成的或者选择自己下载使用的,下方参数的地方根据需要进行设置,点击“下一步”即可,最后一次点击完成即可。

2.建立项目后,如果前面的参数未设置,需要进行单独的设置,例如生成的项目为:

即圈里面的内容没有相应的目录,哪么在项目结构设置即可。

在上述地方建立java和resources目录,同时需要将其进行标注,右键新建的文件夹,Java标注为“源码”,resources标注为“资源”,这样做的目的,在编译打包后的输出目录中,java和resources目录下的内容能够建立指定格式的文件,同时打包输出的内容会全部集成到classes文件夹下(避免后续发布webservices找不到对应的services.xml文件)

3.接下来配置web.xml文件,参考为:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- webservices 接口 XFire 需要引入的 Servlet Start --><servlet><servlet-name>XFireServlet</servlet-name><servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class></servlet><servlet-mapping><servlet-name>XFireServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><!-- 区配前缀 End --><!-- webservices 接口 XFire 需要引入的 Servlet End -->
</web-app>

4.services.xml配置参考:

<?xml version="1.0" encoding="UTF-8"?>
<beans  xmlns="http://xfire.codehaus.org/config/1.0"><service><!--1. 暴露的服务名2. 自定义命名空间3. 接口路径4. 接口实现类路径 --><name>test</name><namespace>CustomNamespaces</namespace><serviceClass>com.gblfy.xfire.service.HelloService</serviceClass><implementationClass>com.gblfy.xfire.service.impl.HelloServiceImpl</implementationClass></service>
</beans>

其中,<name>test</name> 代表发布后的服务名,namespace代表发布后的webservices中的targetNamespace的值,上方的xmlns记得配置。
此文件的目录应该为:

其中“META-INF.xfire”代表“META-INF\xfire",由于是资源文件目录,因此被呈现为“META-INF.xfire”的形式。

5.对应的发布的类文件及客户端测试文件,可以参照下方的操作:

WSXfireClient.java

package com.gblfy.xfire.service.client;import org.codehaus.xfire.client.Client;import java.net.MalformedURLException;
import java.net.URL;public class WSXfireClient {public static void main(String[] args) {helloWorld();}public static void helloWorld(){try {System.out.println("================================helloWorld()========================");URL url = new URL("http://localhost:8080/services/test?wsdl");Client client = new Client(url);Object[] results = new Object[0];results = client.invoke("getUser",new Object[]{"好的"});System.out.println(results[0]);} catch (MalformedURLException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}}
}

HelloServiceImpl.java

package com.gblfy.xfire.service.impl;import com.gblfy.xfire.service.HelloService;
public class HelloServiceImpl implements HelloService {/*** 测试传递User对象 类型的信息 获取户信息接口*/@Overridepublic String getUser(String jsonUser) {//log.info("接收的到 纽约 发送的报文 {}", jsonUser);System.out.print("测试");return "测试成功";}}

User.java

package com.gblfy.xfire.service.model;import java.io.Serializable;public class User implements Serializable {private Long id;private String name;private Integer age;private String email;public User(Long id, String name, Integer age, String email) {this.id = id;this.name = name;this.age = age;this.email = email;}public User() {}
}

HelloService.java

package com.gblfy.xfire.service;public interface HelloService {/*** 测试传递json类型 的User对象 类型的信息 获取户信息接口** @param jsonUser* @return*/public String getUser(String jsonUser);}

6.此处需要在maven的依赖里添加

 </properties><xfire-all.version>1.2.6</xfire-all.version></properties>
<dependency><groupId>org.codehaus.xfire</groupId><artifactId>xfire-all</artifactId><version>${xfire-all.version}</version></dependency>

参照下方的:

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>webservicetest</groupId><artifactId>webservicetest</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><name>webservicetest Maven Webapp</name><!-- FIXME change it to the project's website --><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.7</maven.compiler.source><maven.compiler.target>1.7</maven.compiler.target><xfire-all.version>1.2.6</xfire-all.version></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><dependency><groupId>org.codehaus.xfire</groupId><artifactId>xfire-all</artifactId><version>${xfire-all.version}</version></dependency></dependencies><build><finalName>webservicetest</finalName><pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) --><plugins><plugin><artifactId>maven-clean-plugin</artifactId><version>3.1.0</version></plugin><!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging --><plugin><artifactId>maven-resources-plugin</artifactId><version>3.0.2</version></plugin><plugin><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version></plugin><plugin><artifactId>maven-surefire-plugin</artifactId><version>2.22.1</version></plugin><plugin><artifactId>maven-war-plugin</artifactId><version>3.2.2</version></plugin><plugin><artifactId>maven-install-plugin</artifactId><version>2.5.2</version></plugin><plugin><artifactId>maven-deploy-plugin</artifactId><version>2.8.2</version></plugin></plugins></pluginManagement></build>
</project>

添加后刷新下依赖,如图:

按照上述的0,1,2刷新,在序号2处查看依赖是否引入等。

7.现在所有都处理好后,进行服务的启动,配置如下:

点击右上角的序号0处,选择编辑配置,进入上述配置页面;
点击序号1的加号,找到tomcat server(随便一个Tomcat server即可,选择本地),然后按照序号2的方式配置即可,配置完成后,需要将刚刚的项目添加进去,一般下方都提示你操作,按照下述方式添加也可:

点击上图中的”+“号,此时选择”artifact"选择类似上图中的格式即可,此时下方的圈中的内容添加完毕即可。(备注:上图中application context内容可以配置项目访问时的目录,默认就是直接是“/",可以根据自己需要配置)。

8.由于上述配置时,已经默认启动服务前需要执行构建,因此不需要单独执行maven下的install选项,直接在右上角运行出,选择刚刚建立的tomcat服务的名称,运行即可。

9.运行后使用链接(参考):
http://localhost:8080/services/test?wsdl
/services/:为web.xml中url模式匹配的地方的内容,test为services.xml中的<name>test</name> 中的内容.然后访问即可出现wsdl,如下(参考):

到此结束,此时可以运行WSXfireClient类中的代码,因为wsdl已经发布,同时服务在启动中,可以直接运行即可执行webservice的操作访问。

备注:部分内容都是参考网上其他前辈的内容,根据自己的需要进行搭建设计即可。

idea使用xfire方式发布webservice教程相关推荐

  1. 二、用wsdd(Web Services Deployment Descriptor)方式发布WebService

    wsdd方法比jws方法要稍微复杂些,但一定程度上比jws发布的方法要灵活. 1.首先在AxisWebService工程创建一个java类,里面写简单的2个方法getName.getAge,代码如下: ...

  2. 使用Axis2方式发布webService实例说明

    1.简单的pojo方式: 不需要写配置文件,直接把class文件拷贝到axis2的WEB-INF目录下的poji文件夹下即可.但其局限性表现在,实现类不能有包声明,这在实际开发过程中使用较少,这里不做 ...

  3. Xfire方式开发和解析webservice

    Xfire方式开发和解析webservice 具体的开发webservice步骤: 1. 新建项目 2. 导入相关xfire架包 主要xfire-1.2.6下xfire-all-1.2.6.jar架包 ...

  4. WebService大讲堂之Axis2(3):使用services.xml文件发布WebService

    用Axis2 实现Web Service ,虽然可以将POJO 类放在axis2\WEB-INF\pojo 目录中直接发布成Web Service ,这样做不需要进行任何配置,但这些POJO 类不能在 ...

  5. FineReport中以jws方式调用WebService数据源方案

    在使用WebService作为项目的数据源时,希望报表中也是直接调用这个WebService数据源,而不是定义数据连接调用对应的数据库表,这样要怎么实现呢? 在程序中访问WebService应用服务, ...

  6. WebService之Axis2 (3):使用services.xml文件发布WebService

    用Axis2实现Web Service,虽然可以将POJO类放在axis2\WEB-INF\pojo目录中直接发布成Web Service,这样做不需要进行任何配置,但这些POJO类不能在任何包中.这 ...

  7. WebService入门教程(服务端发布WebService)

    本篇内容过多,时间紧迫的朋友可以通过目录快速筛选自己想要看的内容,本人接触webservice也没多久,也处于学习阶段,如果有错误请指正,如果已经是大神请略过这篇文章,这篇文章不涉及webservic ...

  8. 用XFire发布WebService

    WebService的概念就不多说了,直接进入主题:如何用XFire发布WebService.比较流行的发布WebService的框架有XFire.CXF.AXIS等等.到目前为止接触过的有XFire ...

  9. CXF框架发布WebService服务的例子

    1.CXF框架概念介绍 Apache CXF 是一个开源的 WebService 框架,CXF可以用来构建和开发 WebService,这些服务可以支持多种协议,比如:SOAP.POST/HTTP.H ...

最新文章

  1. Control~Kalman filter
  2. [BZOJ2716/2648][Violet 3]天使玩偶/SJY摆棋子[KDtree]
  3. php 组装二维数组,php实现快速对二维数组某一列进行组装的方法小结
  4. css清除浮动的原理
  5. 我的收藏 - 音频处理相关网站
  6. 神奇的canvas——巧用 canvas 为图片添加水印
  7. linux系统管理:认识安装linux(一)
  8. C#、JS、HTML - 转义字符
  9. shell编写俄罗斯方块
  10. 【金猿人物展】树根互联COO黄路川:从“灯塔工厂”到“数字领航”,工业互联网操作系统助推新型工业化...
  11. Maven的seting配置及命令
  12. office2003 安装步骤及注意事项
  13. 上海发布通知:年底前全面清退不符条件的网约车车辆和驾驶员
  14. 红芯商业计划书曝光:明年要实现3000万利润 2021年冲刺IPO
  15. vertical-align属性的用法
  16. 上市公司财务年报中ps代表什么意思?
  17. matlab的且数组专职,如何将excel中数据导入matlab并存入数组中/matlab导入数据并绘图...
  18. java贪吃蛇(跟着狂神做的,附贪吃蛇素材)
  19. Vue-element简易后台管理系统
  20. Elasticsearch各个版本重要特性

热门文章

  1. 仿照admin的stark自定义组件的功能实现
  2. Android RecyclerView 绘制流程及Recycler缓存,Android开发者必看避坑指南
  3. Python机器学习——决策树
  4. android 铃声设置失败,Android设置铃声失败
  5. 煮肉最健康的方法是什么?还不快来看看
  6. DELLEMC R7 RAID5的配置和u盘安装操作系统+ip地址的配置+修改成eth0 最全!!!
  7. 中国信息通信研究院:2018年中国互联网行业发展态势暨景气指数报告(附下载)...
  8. 2022年山东省安全员C证操作证考试题库及答案
  9. Java之类的主动使用和被动使用
  10. matlab中防汛监测程序,智慧防汛可视化决策平台