JAXB在rest架构中充当着不可或缺的角色,是xml数据得以转化为java对象
注册JAXB类
public void registerClasses(Class[] classes){
try {
JAXBContext context = JAXBContext.newInstance(classes);
} catch (JAXBException e) {
log.error("Initialize JAXB failed:" + e.getMessage());
}
}
XStream配合JAXB的工作,其中client端的类需要序列化,server端不需要
client 端的类定义
@XmlRootElement(name = "VirtualRoomFilter")
public class VirtualRoomFilter implements java.io.Serializable
{
public VirtualRoomFilter(){};
public String name = null;
public Integer customerId = null;
public Integer siteId = null;
public String status = null;
public String e164 = null;
public Integer mcuId = null;
}
server 端的类定义
@XmlRootElement(name = "VirtualRoomFilter")
public class VirtualRoomFilter implements java.io.Serializable
{
public VirtualRoomFilter(){};
public String name = null;
public Integer customerId = null;
public Integer siteId = null;
public String status = null;
public String e164 = null;
public Integer mcuId = null;
}
rest(ESB)的逻辑
@POST
@Path("/getvrsfltr/")
public String getVirtualRoomsByFilter(
@HeaderParam(SERV_NAME) String serv_name,
@HeaderParam(SERV_PW) String serv_pw,
@HeaderParam(USER_NAME) String user_name,
@HeaderParam(USER_PW) String user_pw,
@HeaderParam(VERSION) String version,
@HeaderParam(CALLING_MODULE) String calling_module,
@QueryParam("requestContext") String request_context,
@QueryParam(SESSION_ID) String sessionId1,
@HeaderParam(SESSION_ID) String sessionId2,
@Context HttpServletRequest httpRequestContext,
VirtualRoomFilter vrFilter)
{
String METHOD_NAME = "getVirtualRoomsByFilter";
log.info(METHOD_NAME + "===filter info: customer id = " + vrFilter.customerId + ", vr name = " + vrFilter.name + ", site id = " + vrFilter.siteId+ ", vr status = " + vrFilter.status + ", e164 = " + vrFilter.e164 + ", mcu id = " + vrFilter.mcuId);
BcsAuditLog esbUsageLog = handleStart(user_name, serv_name, METHOD_NAME, toPostXML(vrFilter), calling_module, getIp(httpRequestContext));
BcsResponse loginResult = loginByCredentialsOrSession(serv_name, serv_pw, user_name, user_pw, esbUsageLog, sessionId1, sessionId2, httpRequestContext);
if(! loginResult.isSuccessful()) return handleError("login", loginResult, esbUsageLog);
RequestContext requestContext = null;
try
{
requestContext = handleRequestContextParameter(request_context);
}
catch (Exception e)
{
return handleError("Parameter problem: ", new BcsResponseErrorAndDescr(new BcsResponseError("AA11", null), e.getMessage()), esbUsageLog);
}
try
{
log.debug("getVirtualRoomsByFilter: step 1");
BcsResponse retVal = new BcsResponse();
retVal.setSuccessful(true);
retVal.setReturnedObject(myMethods.getVirtualRoomsByFilter(vrFilter));
retVal.setWarningStr(METHOD_NAME);
return marshal(retVal, esbUsageLog, "getvrs", version, requestContext);
}
catch (java.lang.Throwable t)
{
return handleError(METHOD_NAME, t, esbUsageLog, user_name);
}
}
maven的依赖配置
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.specs</groupId>
<artifactId>org.apache.servicemix.specs.jsr311-api-0.8</artifactId>
<version>1.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.specs</groupId>
<artifactId>org.apache.servicemix.specs.jaxb-api-2.1</artifactId>
<version>1.3.0.0-fuse</version>
</dependency>
<dependency>
<groupId>org.apache.servicemix.bundles</groupId>
<artifactId>org.apache.servicemix.bundles.commons-httpclient</artifactId>
<version>3.1_1-fuse</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>
分享到:
相关推荐
使用jaxb来实现对xml的读写,其中用到了list整个集合
解析xml java与xml转换的demo --stax jaxb
JAXB2 Maven插件欢迎使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin ,这是用于XML Schema编译的最先进且功能齐全的Maven插件。 这个Maven插件包装并增强了 并允许将XML Schema(以及WSDL,DTD,RELAX NG)编译为...
关于Jaxb2-Maven-Plugin 这个Maven插件使用Java API for XML Binding(JAXB)2+版来执行以下2个主要任务之一: 从XML模式(以及可选的绑定文件)生成Java类。 这是通过将工作委派给Java SDK附带的XJC工具来完成的...
org.jvnet.jaxbw.zip JAXB eclipse 插件 xsd.exe 更觉xml生成对应的schema文件 具体的信息就不描述了
dom4j-1.6.1+httpclient-4.5.7+httpcore-4.4.5+jaxb-core+jaxb-impl.jar 亲测有用
maven-jaxb2-plugin-0.14.0 下载 maven包 JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB...
赠送Maven依赖信息文件:jackson-module-jaxb-annotations-2.7.8.pom; 包含翻译后的API文档:jackson-module-jaxb-annotations-2.7.8-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:...
赠送Maven依赖信息文件:jackson-module-jaxb-annotations-2.2.3.pom; 包含翻译后的API文档:jackson-module-jaxb-annotations-2.2.3-javadoc-API文档-中文(简体)版.zip; Maven坐标:...
自己在网上找了很多cxf实现rest风格的文章也不少,但是都讲的不全面,也没有lib包,所以自己参考网上零散的文章,搞了大半天才成功的。现在把源码发上来,java代码只有12K,主要是lib里面的全部jar包(spring、cxf等...
JAXB的安装包及插件
NULL 博文链接:https://endeavor416.iteye.com/blog/270507
用xstream和betwixt实现对xml、object的互相转换。直接下载到本地后导入到eclipse里可以运行。 适合初学者和项目开发的同学们。
现在很多maven仓库均没有此jar jaxb-api-2.3.0.jar jaxb-core-2.3.0.jar
有关Maven项目中缺少jaxb-api的异常报错解决,jaxb-core-2.3.0.jar
无需安装,解压后即可。jaxb-api.jar,jaxb-xjc.jar,jaxb-impl.jar,activation.jar等相关jar包在lib文件夹下。
赠送Maven依赖信息文件:jaxb-api-2.2.11.pom; 包含翻译后的API文档:jaxb-api-2.2.11-javadoc-API文档-中文(简体)版.zip; Maven坐标:javax.xml.bind:jaxb-api:2.2.11; 标签:javax、xml、bind、jaxb、api、中文...
使用woodstax+jaxb进行xml的流解析,包括解析类,解析文件,所需jar包,带注解的实体类。提高了解析效率,减少了内存消耗。
赠送Maven依赖信息文件:jaxb-api-2.3.0.pom; 包含翻译后的API文档:jaxb-api-2.3.0-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:javax.xml.bind:jaxb-api:2.3.0; 标签:javax、xml、bind、jaxb、...
spring加载restful(文档+程序源码) ...然后我们再完成一个更复杂的应用来了解Spring 3 REST支持的重要概念,如多种MIME类型表示支持和JAXB支持。另外,本文还使用一些代码片断来帮助理解这些概念。