idea使用xfire方式发布webservice教程

article/2025/10/12 20:51:09

近日在熟悉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的操作访问。

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


http://chatgpt.dhexx.cn/article/Htu1YchK.shtml

相关文章

java发布webService服务教程

发布webService服务并使用soap UI测试 发布简单的webService服务同时发布多个webService接口使用SoapUI测试webService接口下载SoapUI并安装打开WSDL文件测试文件上传 示例源码 发布简单的webService服务 新建一个Maven项目pom引入 webService需要的依赖 <dependency>&…

WebService 教程(包含项目实践)

情景引入&#xff1a; 时间&#xff1a;早晨 8 : 00 am 小白&#xff1a;起床起床&#xff0c;&#xff0c;&#xff0c;公司又来需求了&#xff0c;你还在睡觉&#xff0c;快点起来~&#xff01; 我&#xff1a;大惊小怪&#xff0c;又怎么了呢&#xff1f;小白&#xff0c…

最详细的idea创建webservice教程

最详细的idea创建webservice教程 创建服务端 File->New Project 点击next&#xff0c;会自动生成demo将要发布的类加上WebService&#xff0c;方法加上WebMethod&#xff0c;设置服务发布address WebService() public class HelloWorld {WebMethodpublic String sayHello…

WebService简单入门

1. JAX-WS发布WebService 创建web工程 创建simple包&#xff0c;和server、client两个子包。正常情况下server和client应该是两个项目&#xff0c;这里我们只是演示效果&#xff0c;所以简化写到一个项目中&#xff1a; 1.1 创建服务类Server package simple.server;import ja…

WebService教程实例

一、准备工作 1、Myeclipse 2014 2、jdk8.0 二、创建服务端 1、创建【Web Service Project】&#xff0c;命名为【TheService】。 2、创建【Class】类&#xff0c;命名为【ServiceHello】&#xff0c;位于【com.hyan.service】包下。 3、编写供客户端调用的方法&#xff0c;即编…

Java小白翻身 - webservice教程2

来一个HelloWorld&#xff0c;SpringBoot发布WebService可简单啦。 1、搭建项目2、配置pom.xml3、建services服务包4、登陆接口类5、登陆接口实现类6、创建CXF配置类7、Parameter 0 of method errorPageCustomizer in ErrorMvcAutoConfiguration 异常解决8、访问webservice9、…

idea2021创建webservice教程

一、创建服务端 1、创建一个新的java工程 2、工程项目右键添加框架依赖 3、选择webservices 4、点击确定完成创建。创建后项目会添加相关依赖。以及测试服务类。 5、代码介绍 // 添加WebService注解 WebService() public class HelloWorld {// 方法添加WebMethod注解W…

WebService教程

最近在学习WebService&#xff0c;今天尝试用Eclipse的插件生成JAX-WS WebService&#xff0c;结果遇到了不少的问题啊&#xff0c;调试了大半天终于把程序跑通了。现在把步骤和问题记录一下&#xff0c;也为了以后遇到相同的问题时能够及时解决。首先利用Eclipse生成WebServic…

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

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

WebService最详细教程

WebService相关概念 基础概念 WebService是一种跨编程语言和跨操作系统平台的远程调用技术,就是说服务端程序采用java编写&#xff0c;客户端程序则可以采用其他编程语言编写&#xff0c;反之亦然&#xff01;跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统…

webSerivce简明使用教程

茫茫人海千千万万&#xff0c;感谢这一秒你看到这里。希望我的文章对你的有所帮助&#xff01; 愿你在未来的日子&#xff0c;保持热爱&#xff0c;奔赴山海&#xff01; &#x1f440; 前言 因为前段时间&#xff0c;需要使用到webService来调用公司的其他系统api接口&#x…

WebService详细讲解

1 学习目标2 webservice 基本概念 2.1 什么是web服务2.2 简介2.3 术语 2.3.1 webservice开发规范2.3.2 SOAP 协议2.3.3 wsdl说明书2.3.4 UDDI2.4 应用场景2.5 优缺点 2.5.1 优点&#xff1a;2.5.2 缺点&#xff1a;2.6 面向服务架构SOA3 ApacheCXF 框架介绍 3.1…

11步教你入门webservice

新建立一个javaWeb项目&#xff0c;一个java类&#xff0c;如图&#xff1a; 1.具体很简单 首先要创建一个web工程 2、接下来我们就要将项目中的TestService的这个类生成WebService服务端&#xff0c;选择new Web Service&#xff0c;如图&#xff1a; 3 4.Next,选择jav…

php 实现分页功能(class封装了功能)

前言 分页是一个很常见的功能&#xff0c;我这里提供了分类类(class)&#xff0c;用于前端页面中的四个按钮&#xff1a; 首页下一页上一页尾页 上面的演示非常不直观&#xff0c;但足可以证明这个类可以完成分页功能。 完整的代码 附有非常详细的注释&#xff0c;但需要有…

PHP分页技术详解

直接上代码&#xff0c;注释很详细了。 <?php /** * php分页技术详解 * author jahng */header("Content-type: text/html; charsetUTF-8");echo<link rel"stylesheet" type"text/css" href"css.css" media"all" /&g…

PHP的分页处理

HTML页面&#xff1a; <div class"page"> {$data->render()|raw} </div> 控制器页面&#xff1a; $data ArticleInfo:: where(cate_id, $this->cid)->whereLike(title,%.$get.%)->paginate([ query>[cid>$this->cid], l…

php分页

这是学生信息管理每三条一页> <?phpfunction news($pageNum 1, $pageSize 3){$array array();$mysqlnew mysql();$rs "select * from user limit " . (($pageNum - 1) * $pageSize) . "," . $pageSize;$r $mysql->query($rs);while ($obj…

PHP-分页

1.6 分页 1.6.1 分析 -- 1、获取当前页码的数据 页码 SQL语句 1 select * from products limit 0,10 2 select * from products limit 10,10 3 select * from products limit 20,10 结论&#xff1a; $pageno&#xff1a;页码 $startno:起始位置 $pagesize10:页面大小…

PHP分页查询

1、创建Page.php类&#xff0c;代码如下&#xff1a; <?php /*** 分页模板类*/ class Page {private $cur_page;//当前页private $total;//总条数private $page_size 10;//每页显示的条数private $total_page;//总页数private $first_page;//首页显示名称private $pre_pa…

全功能PHP分页条

网上可以找到的ASP、PHP分页条很多。我也不能免俗&#xff0c;发表一个献献丑。唯一聊以自慰的是这个分页条能生成的显示样式还是很多的&#xff0c;相信能满足大部分人的需要。另一个特点就是使用特别简单&#xff0c;一般传递两个参数即可使用。文档里有使用样例和效果图。发…