使用XFire编写第一个javaee上的web service程序
1.CXF简介
2. 如何实现简单的hello world程序
3. 试试在.net环境下调用上面的服务
4. 代码下载
1. XFire简介
CXF代替了XFire,但是 XFire仍旧在维护。XFire大大简化了javaee平台下面web service的开发(myeclipse开发环境中更加如此)。同时能够支持WS-*等功能。
2. 如何实现简单的hello world程序
下面开始实现第一个web service程序,还是从hello world开始啦。
2.1 在myeclipse 6.5中新建一个web service工程。
一路next,最终建立了第一个web serivice工程。
2.2 下面新建一个新的service。
myeclipse将生成HelloWorldService.java,同时环境已经配置好。修改上面生成两个文件:
HelloWorldServiceImpl.java:
package jefferyxu.services;
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
IHelloWorldService.java:
package jefferyxu.services;
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
//Generated by MyEclipse
public class HelloWorldServiceImpl implements IHelloWorldService {
public String sayHello(String user) {
// TODO Auto-generated method stub
return "Hello, " + user;
}
}
2.3 将上述工程部署到tomcat中。
2.4 生成web service的客户端。
完成之后,生成 HelloWorldServiceClient.java文件,修改main函数代码:
public static void main(String[] args) {
HelloWorldServiceClient client = new HelloWorldServiceClient();//create a default service endpoint
HelloWorldServicePortType service = client.getHelloWorldServiceHttpPort();
//TODO: Add custom client code here
//
//service.yourServiceOperationHere();
String webSerivceResult = service.sayHello("qiang.xu");
System.out.println("get the result form web service is " + webSerivceResult);
System.out.println("test client completed");
System.exit(0);
}
运行Main函数,将出现Hello,qiang.xu的字符串,表明正确调用了web service。
3. 试试在.net环境下调用上面的服务
.net中调用web service比较简单,添加web service reference,并命名为JavaEEServiceReference,测试代码:
namespace JavaEEWebServiceConsumer
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("get the message from javaee websservice");
JavaEEServiceReference.HelloWorldServicePortTypeClient proxy =
new JavaEEServiceReference.HelloWorldServicePortTypeClient();
String message = proxy.sayHello("qiang.xu");
Console.WriteLine("the javaee web service return :" + message);
Console.WriteLine("press any key to continue");
Console.ReadKey();
}
}
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("get the message from javaee websservice");
JavaEEServiceReference.HelloWorldServicePortTypeClient proxy =
new JavaEEServiceReference.HelloWorldServicePortTypeClient();
String message = proxy.sayHello("qiang.xu");
Console.WriteLine("the javaee web service return :" + message);
Console.WriteLine("press any key to continue");
Console.ReadKey();
}
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?