JAXB(Java Architecture for XML Binding简称JAXB)允许Java开发人员将Java类映射为XML表示方式。JAXB提供两种主要特性:将一个Java对象序列化为XML,以 及反向操作,将XML解析成Java对象。换句话说,JAXB允许以XML格式存储和读取数据,而不需要程序的类结构实现特定的读取XML和保存XML的 代码。
Customer.java
package com.mkyong.core;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Customer {
String name;
int age;
int id;
public String getName() {
return name;
}
@XmlElement
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
@XmlElement
public void setAge(int age) {
this.age = age;
}
public int getId() {
return id;
}
@XmlAttribute
public void setId(int id) {
this.id = id;
}
}
JAXBExample.java
package com.mkyong.core;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Marshaller;
public class JAXBExample {
public static void main(String[] args) {
Customer customer = new Customer();
customer.setId(100);
customer.setName("mkyong");
customer.setAge(29);
try {
File file = new File("C:\\file.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
// output pretty printed
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.marshal(customer, file);
jaxbMarshaller.marshal(customer, System.out);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
输出
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<customer id="100">
<age>29</age>
<name>mkyong</name>
</customer>
将XML转为对象
package com.mkyong.core;
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.Unmarshaller;
public class JAXBExample {
public static void main(String[] args) {
try {
File file = new File("C:\\file.xml");
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
Customer customer = (Customer) jaxbUnmarshaller.unmarshal(file);
System.out.println(customer);
} catch (JAXBException e) {
e.printStackTrace();
}
}
}
输出
Customer [name=mkyong, age=29, id=100]
文章转自:http://www.oschina.net/code/snippet_12_5581
分享到:
相关推荐
在压缩包文件`JAXB-master`中,可能包含了完整的JAXB HelloWorld示例项目,包括Java源代码、XML示例文件以及可能的构建脚本(如`build.xml`,如果是Ant项目,或`pom.xml`,如果是Maven项目)。通过研究这些文件,...
通过这个helloworld示例,你可以学习到如何设置CXF环境、创建服务接口、实现服务逻辑、发布服务以及生成和使用客户端代码。这将为你进一步深入学习CXF的高级特性,如WS-Security、MTOM/XOP、JAXB数据绑定等奠定基础...
在我们的"helloWorld"项目中,可能包含了服务接口、实现类、配置文件以及可能的测试客户端代码。通过这个简单的DEMO,你可以了解到如何使用Apache CXF构建Web服务,并进行基本的交互。随着对CXF的进一步学习,你还...
标题 "xfire的一个helloworld" 暗示我们即将探讨的是关于XFire框架的一个简单示例应用。XFire是一款早期的Java SOAP服务框架,后来发展成为Apache CXF的一部分。这个"Hello World"程序通常用于介绍如何使用XFire来...
标题 "CXF 2.3 集成Spring3.0入门 HelloWorld" 指向的是一个关于如何在Java项目中使用Apache CXF 2.3版本与Spring 3.0框架进行集成的教程,特别是通过一个简单的"Hello World"应用来演示这个过程。Apache CXF是一个...
**泽西岛(Jersey)客户端HelloWorld示例** 泽西岛(Jersey)是Java的一个开源RESTful Web服务框架,由Sun Microsystems(现已被Oracle收购)开发,它基于JSR 311和JSR 339标准。本示例主要介绍如何使用泽西岛...
HelloWorld helloWorld = service.getHelloWorldPort(); String response = helloWorld.sayHello("World"); System.out.println(response); // 输出 "Hello, World" ``` **4. JAX-WS高级特性** JAX-WS还支持一些...
1. `HelloWorld.java` - 这是服务端的核心类,可能包含一个简单的“sayHello”方法,返回一条问候消息。 2. `HelloWorldService.java` - 这是自动生成的服务端端点类,用于启动Web服务并处理客户端请求。 3. `...
address="/HelloWorld"/> ``` 6. **部署与运行**:将配置好的CXF应用打包成WAR文件,然后部署到支持Servlet 3.0以上的应用服务器,如Tomcat、Jetty等。启动服务器,Web服务就会在指定的URL上运行。 7. **测试...
- **HelloWorld示例**:最基础的示例,展示如何创建一个简单的服务并调用。 - **数据绑定示例**:展示如何通过JAXB将Java对象转换为XML消息,反之亦然。 - **RESTful服务示例**:展示如何使用CXF创建和消费...
HelloWorld client = (HelloWorld) factory.create(); String response = client.sayHello("World"); System.out.println(response); ``` 四、WSDL和SOAP: 在上述示例中,我们没有直接涉及WSDL。然而,WSDL是Web...
public class HelloWorldImpl implements HelloWorld { public String sayHello(String name) { return "Hello, " + name; } } ``` 5. **配置并启动XFire服务**:创建一个服务器实例,注册服务并启动。可以使用`...
本文将介绍使用 Spring 3 创建 RESTful Web Services 的方法,并提供了一个简单的 “Hello World” 示例应用。 Spring 3 中的 REST 支持 在 Spring 3 中,REST 支持被无缝整合到 MVC 层中,可以很容易地应用到使用...
6. **HelloWorld示例**:通常在编程学习中,“Hello, World!”是最基础的示例,用于展示语言的基本语法。在WEB服务的上下文中,"HelloWorld"可能是一个简单的服务,它接收请求并返回一个包含“Hello, World!”的...
<servlet-name>HelloWorld <servlet-class>com.sun.jersey.server.impl.container.servlet.ServletContainer</servlet-class> <param-name>com.sun.jersey.config.property.packages</param-name> ...
HelloWorld service = new HelloWorld_Service().getHelloWorldPort(); String response = service.sayHello("World"); System.out.println(response); // 输出 "Hello, World" ``` **五、JAX-WS与JAX-RS的比较** ...
HelloWorld helloWorld = new HelloWorld_Service(url, qname).getHelloWorldPort(); String result = helloWorld.getHelloWorldAsString("World"); System.out.println(result); ``` #### 五、高级功能介绍 -...
2. **定义接口**:使用 `@WebService` 注解定义 Web Service 接口,例如 `HelloWorld` 接口: ```java @WebService public interface HelloWorld { public String sayHello(String text); } ``` 3. **实现接口**:...
**四、入门实践——HelloWorld示例** 为了快速上手,我们可以创建一个简单的"HelloWorld"示例。首先,从Apache官方网站下载CXF的最新版本,例如这里使用的是2.2.2版本。然后,在Java项目中引入必要的依赖库,包括...
例如,上面的`server-config.wsdd`文件展示了如何配置一个名为`HelloWorld`的服务,指定其使用`RPC`提供者,并指明了服务类和允许的方法。 7. **启动和测试Web服务** 启动Tomcat服务器,然后可以通过SOAP客户端...