cxf webservice java_使用cxf发布webservice(JavaApplication)

第一步:下载CXF:http://www.apache.org/dyn/closer.cgi?path=/cxf/2.7.7/apache-cxf-2.7.7.zip  。解压后,新建一个Java项目,导入cxf中lib文件夹的所有jar包。

第二步:编写接口CalculatorService.java,这个接口就是提供web服务的那个接口啦,里面的方法都是提供给人家调用滴。

48304ba5e6f9fe08f3fa1abda7d326ab.png

packagecom.likunjie;importjavax.jws.WebParam;importjavax.jws.WebService;

@WebServicepublic interfaceCalculatorService {int add(int a, intb);

String concat(String a, String b);

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

第三步:编写接口的实现类CalculatorServiceImpl.java,类里面要实现接口的方法。

48304ba5e6f9fe08f3fa1abda7d326ab.png

packagecom.likunjie;importjavax.jws.WebService;

@WebService(endpointInterface="com.demo.CalculatorService",serviceName="calculator")public class CalculatorServiceImpl implementsCalculatorService {

@Overridepublic int add(int a, intb) {return a +b;

}

@OverridepublicString concat(String a, String b) {return a +b;

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

第四步:开发服务端WebService.java,写完以后右击,运行Run As Java application(之后也不要关掉)。如果没有错误就继续下一步,有错误检查上一个类注解的地址是否跟你包名一致。检查是否有拼写错误。

48304ba5e6f9fe08f3fa1abda7d326ab.png

packagecom.likunjie;importjavax.xml.ws.Endpoint;public classWebService {public static voidmain(String[] args) {

System.out.println("web service start");

CalculatorServiceImpl implementor= newCalculatorServiceImpl();

String address= "http://localhost:8080/calculator";  //这是上面在注解中已经声明过的URL

Endpoint.publish(address, implementor);

System.out.println("web service started");

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

第五步:打开浏览器,输入:http://localhost:8080/calculator?wsdl ,如果显示以下信息,那么你已经完成了一大半。这个就是传说中的wsdl,要使用服务的客户端要先获取这个wsdl,知道里面描述了有什么服务使用以后。再根据这个wsdl,可以生成自己的客户端,并且访问所描述的服务。(这个一个schema文件,不懂的话再要去学一下)

48304ba5e6f9fe08f3fa1abda7d326ab.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

第六步:客户端是完全不知道服务端以上的代码的。只有cxf和被提供的这个wsdl,那么怎样才能调用服务呢?CXF包的bin目录下其实有一个指令,叫wsdl2java,我们可以使用这个命令,根据得到的wsdl来生成java代码。接下来,小心跟着下面的步骤:1、打开命令行,路径切换到cxf包下的bin目录(是为了使用该目录下的指令)。2、在命令行敲上:wsdl2java

http://localhost:8080/calculator?wsdl  。完了以后再看这个bin目录,你会发现多了一个com文件夹,这个就是产生的项目代码文件,留着等下用。3、新建一个项目作为客户端,同样把所有CXF的jar包都导入,接着把上一步产生的com文件夹剪切到项目的src目录下。 把有出现红线的地方按提示修改就行了。4、在同一个包下面编写Client类,在main方法调用服务。最后运行Run as Java Application。

b73bc78e70d9bcd89b7b0e0c5dfd3fbf.png

d7447136040d226dc9738d4cbd7c48ad.png

48304ba5e6f9fe08f3fa1abda7d326ab.png

packagecom.likunjie;public classClient {public static voidmain(String[] args) {

Calculator calc= newCalculator();

CalculatorService service=calc.getCalculatorServiceImplPort();int a = service.add(3, 7);

String b= service.concat("what's ", "that about?");

System.out.println(a);

System.out.println(b);

}

}

48304ba5e6f9fe08f3fa1abda7d326ab.png

输出结果:

10

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值