What is the best web service solution? JAX-WS ? Sorry, I couldn't agree with you.
First JAX-WS is a complicate solution. It Includes:
How to exchange XML data? Document or RPC
How to exchange Document data? Wrapped or Bare
How to invoke RPC? Encoding or Literal
How to serialise Java objects to XML? JAXB
How to define a web service ? WSDL, Service, Port, PortType, Operation, Input, Output Messsage...
How about a RPC parameter? IN, OUT or IN/OUT
What a mess?
How about JSON-RPC ? Pretty simple.
How to exchange data? JSON format remote procedure call.
For example: this is a RPC invocation for a remote procedure named "substract",
int subtract(int first, int sec);
The request and response as following:
--> {"jsonrpc": "2.0", "method": "subtract", "params": [42, 23], "id": 1}
<-- {"jsonrpc": "2.0", "result": 19, "id": 1}
Somebody maybe not convinced? They told me, I have tools to help me.
What do you mean the tools? Java2WSDL, WSDL2Java ? Actually, It is still hard works.
How about JSON-RPC ?
Let us have a look... with proxy tech, we can easy make a json-rpc call. For example:
First, we define a service interface:
public interface AccountService{
Account getAccount(String name);
String getName(Long id);
Long getId(String name);
Integer getAge(String name);
Double getBalance(Account account);
Collection<Account> getAccounts();
}
Second, we call the service with a proxy, that is all. cheers.
ServiceProxy proxy = new ServiceProxy(AccountService.class, "http://localhost:8080/jsonrpc/rpc");
accountService = (AccountService)proxy.create();
Account a = accountService.getAccount("jay");
assertNotNull(a);
String name = accountService.getName(1L);
System.out.println("name -> "+ name);
assertNotNull(name);
Collection<Account> accounts = accountService.getAccounts();
System.out.println("accounts -> " + accounts);
assertTrue(accounts.size() > 0);
How about Ajax?
Do you know how to call JAX-WS with javascript ? Sorry, I have no idea about it....
How about call a JSON-RPC service by javascript ? No problem...
libjsonrpc is an open source apache 2.0 licensed json-rpc 2.0 java implementation. There are tutorials on how to build a json-rpc client/service/ajax. I swear you are able to learn it in half hour.
have a fun with it.
http://code.google.com/p/libjsonrpc/
分享到:
相关推荐
2. **Java Web Service**:在Java中,可以通过JAX-WS(Java API for XML Web Services)框架创建和消费Web服务。JSON支持通常通过额外的库如Jettison或Jackson实现,这些库能够将Java对象序列化为JSON,或将JSON解析...
此外,开源项目如Apache CXF提供了更丰富的功能,如支持WS-Security、MTOM(Message Transmission Optimization Mechanism)等高级特性。 **JAX-WS的未来** 随着微服务架构和RESTful API的流行,JAX-WS在新项目中...
5. JAX-RS进阶:深入研究响应式编程、客户端API、资源分页和过滤,以及与其他JAX-RS规范如JAX-RPC和JSON-P的集成。 6. 开发工具与环境:设置和使用IDE(如Eclipse或IntelliJ IDEA)、Maven或Gradle构建工具,以及...
4. **WS-MetaData**:这是一个与JAX-WS紧密相关的规范,其API位于`javax.jws.*`包下,主要用于通过注解配置Web服务的相关信息和配置SOAP消息的信息。 #### 四、JAXM&SAAJ概述 除了JAX-WS之外,Java中还有另外两个...
(删减)JAX-RPC 1.1 - - JAX-WS 2.2a - -项目-邮件列表 JAXB 2.2 - JSR 222 -项目-邮件列表 Web 服务 1.4 - JSR 109 Web 服务元数据 2.1 - JSR 181 JAX-RS 2.0 - JSR 339 -项目-邮件列表- Jersey - @gf_jersey - ...
- **JAX-WS 2.0** 是 JAX-RPC 1.0 规范的扩展,也是 JAX-RPC 1.1 的后续版本。它提供了新的编程模型并对原有的 Webservice 进行了增强。 - **JAX-WS 2.0 (JSR224)** 是一个完全基于标准的实现,它使用了 Java ...
1. **javax.xml.ws-api.jar**:这是JAX-WS规范的API接口定义,包含了所有JAX-WS相关的类和接口,如`WebServiceClient`, `WebServiceRef`, `@WebService`等注解。 2. **com.sun.xml.ws.api.jar**:这是JAX-WS RI...
3. **WS-*协议实现**:CXF实现了多个Web服务标准,如WS-Security、WS-Addressing、WS-ReliableMessaging等,以确保服务的安全性、可寻址性和可靠性。 4. **客户端和服务器端支持**:CXF可以创建Web服务客户端和...
4. **WS-*标准支持**:CXF实现了众多Web服务标准,如WS-Security、WS-ReliableMessaging、WS-Addressing等,增强了服务的安全性和可靠性。 5. **插件体系结构**:CXF有一个强大的插件体系,允许开发者添加自定义的...
相比之前的JAX-RPC(Java API for XML Remote Procedure Call),JAX-WS在易用性和性能上都有所提升。JAX-WS支持RPC/encoded风格的服务调用,同时也支持文档/文本风格的调用方式。此外,JAX-WS还支持WSDL文件的自动...
WS-Metadata(JSR181)是JAX-WS的一部分,它通过注解来配置Web服务的元数据信息和SOAP消息。 2. JAXM&SAAJ(Java API for XML Messaging & SOAP with Attachments API for Java):JAXM提供了XML消息的发送和接收...
- **支持多种通信协议**:除了SOAP和REST之外,CXF还支持诸如XML-RPC、JSON-RPC等其他协议。 - **安全性**:内置了对WS-Security的支持,确保了消息的安全传输。 - **互操作性**:能够与其他Web服务框架良好地协同...
CXF提供了丰富的API和工具来支持SOAP、RESTful、JSON、XML以及各种协议和标准,如WS-*家族。在本篇文章中,我们将深入探讨Apache CXF API及其在开发中的应用。 **1. CXF的核心组件** Apache CXF主要包括以下几个...
- JAX-RPC(Java API for XML-based Remote Procedure Calls):早期的Web服务API,已被JAX-WS取代,但它也允许Java应用调用远程Web服务。 - Axis2:是一个流行的开源Web服务引擎,支持JAX-WS规范,提供高效的SOAP...
基础部分涵盖了Axis2的多种特性,如JAX-RPC和JAX-WS规范的实现、复杂类型的传输、Web服务会话管理以及Axis2模块的使用。 在项目实践中,首先是一个使用Java Swing构建的个人信息管理系统(PIM)。这个系统展示了...