加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

一个简单的webService演示(入门)

发布时间:2020-12-17 00:43:03 所属栏目:安全 来源:网络整理
导读:???????????????????????????? 创建服务器端: ?1 :加载的 jar 如下: ?????????? ??????? ? 备注: ???????? ? 包的来源可以从这里去下载: http://xfire.codehaus.org/Download ? ???????????? ? ????????? ? 解压后将lib里面所以的包以及xfire-all-1.2.6

???????????????????????????? 创建服务器端:

?1:加载的jar如下:

??????????

???????

?

备注:

????????? 包的来源可以从这里去下载:http://xfire.codehaus.org/Download

?

????????????

?

?????????? 解压后将lib里面所以的包以及xfire-all-1.2.6.jar导入到项目中去。

?

2:新建一个web project,然后创建一个接口类和一个实现该接口的类

??? 结构图如下所示:

???????????????????????????????????????????

????

???? 演示代码如下:

???????? IBasic.java

??????????????? package org.baicai.ws.basic;

?

??????????????? public? interface IBasic {

???

??? ????????? ? publicint saveNumber(int i,int j);

?

???????????????? }

????????BasicImpl.java

??????????????? package org.baicai.ws.basic;

?

?????????????? publicclass BasicImpl implements IBasic {

?

??? ???????? ?@Override

??? ??????? ? publicint saveNumber(int i,int j) {

?????? ????? ? return i+j;

??? ?????? ?? }

?????????? }

?

?

? 3:创建一个service.xml文件,并对其进行设置

????? 3.1:在src目录下新建一个WETA-INF文件

????? 3.2:在WETA-INF文件中再新建一个xfire文件夹

????? 3.3:在xfire文件夹中创建一个service.xml文件

??????????? ? 目录结构如下:

????????????????????????????????????????????????????????

?

???? 3.4:对services.xml文件进行配置

??????????? 文件配置如下:

????????????????????????????????????????<?xml version="1.0" encoding="UTF-8"?>

??????????????????????????????????????????????????????????? <beans xmlns="http://xfire.codehaus.org/config/1.0">

??? ??????????????????????????????????????????????????? ????<service>

???????? ????????????????????????????????????????????????????? ??<name>TestService</name>

???????? ??????????????????????????????????????????????????????? ?<namespace>http://org/baicai/ws/basic/IBasic</namespace>

????????????????????????????????????????????????????????????? ?? ??<serviceClass>org.baicai.ws.basic.IBasic</serviceClass>

????????????????????????????????????????????????????????????????? <implementationClass>org.baicai.ws.basic.BasicImpl</implementationClass>

?????????????????????????????????????????????????????? ?? ?</service>

????????????????????????????????????????????????? </beans>

?

4:对web.xml文件进行配置

??? 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/javaee

????????????????????????????????????????????? ? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

???????????????????????????????????? ? <welcome-file-list>

????????????????????????????????????????? ?? <welcome-file>index.jsp</welcome-file>

???????????????????????????????????? ?</welcome-file-list>

?

??????????????????????????????????????<servlet>

?????????????????????????????????????????? ? <servlet-name>XFireServlet</servlet-name>

??????????????????????????????????????? ??? <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet

???????????????????????????????????? ? </servlet-class>

????????????????????????????????????????? ?<load-on-startup>0</load-on-startup>

????????????????????????????????? ?</servlet>

?

?????????????????????????? <servlet-mapping>

???????????????????????????????? ?<servlet-name>XFireServlet</servlet-name>

????????????????????????????????? <url-pattern>/services/*</url-pattern>

???????????????????????? ? </servlet-mapping>

?????????????? </web-app>

?

5:服务器端部署

?????5.1:部署你的应用。

???? 5.2:访问http://ip:port/projectName /services

???? 5.3:? 点击查看wsdl,能看到一串xml代码就表示服务程序有及部署通过

??????????? ? 结果如下:

????????????????????????????????

????????????????????

??????????????????????????????

?

?

?????????????????????????????????????????????????? 创建客户端:

?1:将服务端的应用打包成jar:

????? 打包方式可见:http://www.voidcn.com/article/p-rdatzarw-mh.html

?

2:加载的jar:服务端应用所用的jar和新打的服务端jar

?

3:新建一个客户端项目

?

4:测试服务端提供的接口

??????? ?4.1:新建一个测试类

??????? 4.2:调用服务端提供的接口

??????? 4.3:测试是否调用成功

?????? ???????? 客户端项目结构如下:

?????????????????????????????????????????????????????????????????????????????

测试类如下:

package org.baicai.ws.test;

?

import java.net.MalformedURLException;

?

import org.baicai.ws.basic.IBasic;

import org.codehaus.xfire.client.XFireProxyFactory;

import org.codehaus.xfire.service.Service;

import org.codehaus.xfire.service.binding.ObjectServiceFactory;

?

publicclass MyClient {

???

??? publicstaticvoid main(String[] args) {

???????????????????????? //参数说明:调用接口类,服务端项目名称(service.xml文件中的name),表空间

?????????????????????? ?Service serviceModel=new ObjectServiceFactory().create????????????? (IBasic.class,"TestService","http://org/baicai/ws/basic/IBasic",null);

?????? try {

????????????????????????? //参数说明:服务对象,访问路径(http://ip:port/projectName/services/服务端项目名称)

??????????????????????? ? IBasic service=(IBasic) new XFireProxyFactory().create???????????????????????????????????? (serviceModel,"http://192.168.104.35:8088/TestXFire/services/TestService");

?????????? System.out.println(service.saveNumber(2,3));

?????? } catch (MalformedURLException e) {

?????????? e.printStackTrace();

?????? }

??? }

}

?

?附录:可能会遇到的问题以及解决方案

服务端:

???? 1:java.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not exist

? 原因:services.xml文件不存在或者是services.xml文件存放路径错误。

? 解决方案:见创建服务端第三步

?

?

客户端:

? 1:404 错误。

????? Caused by: org.codehaus.xfire.XFireRuntimeException: Server returned error code = 404 for URI :……

?? 原因:提供代理类的URL不正确

?? 解决方案:给代理类正确的URL。这里是没有指定服务端名称……/services/ TestService

?

2:无法连接,导致信息不能发送。

Caused by: org.codehaus.xfire.XFireException: Couldn't send message.

Caused by: java.net.ConnectException: Connection refused: connect

? 原因:服务端没有部署

? 解决方案:部署服务端,也就是可以正常的访问http://ip:port/projectName /services 。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读