`

JAXB+Maven+ESB+Restful+XStream

阅读更多
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+stax+demo

    在"jaxb+stax+demo"的示例中,通常会展示如何结合JAXB和STAX来高效地解析和生成XML。具体步骤可能包括以下几点: 1. **定义Java类**:首先,我们需要创建一些Java类,这些类将代表XML文档中的元素和属性。JAXB使用...

    maven-jaxb2-plugin:用于XML模式编译的最先进的JAXB2 Maven插件

    JAXB2 Maven插件欢迎使用org.jvnet.jaxb2.maven2:maven-jaxb2-plugin ,这是用于XML Schema编译的最先进且功能齐全的Maven插件。 这个Maven插件包装并增强了 并允许将XML Schema(以及WSDL,DTD,RELAX NG)编译为...

    jaxb+list+实体,实现对xml读写

    在Java世界中,Java Architecture for XML Binding(JAXB)是一个强大的工具,用于将Java对象转换为XML文档,以及从XML文档反序列化回Java对象。本篇将详细讲解如何使用JAXB结合List实体来实现XML的读写操作。 首先...

    jaxb2-maven-plugin:JAXB2 Maven插件

    关于Jaxb2-Maven-Plugin 这个Maven插件使用Java API for XML Binding(JAXB)2+版来执行以下2个主要任务之一: 从XML模式(以及可选的绑定文件)生成Java类。 这是通过将工作委派给Java SDK附带的XJC工具来完成的...

    JAXB + XSD

    **JAXB (Java Architecture for XML Binding)** 是Java平台上的一个标准技术,用于将XML文档与Java对象之间进行绑定,使得XML数据的处理变得更加简单。它允许开发者通过Java类来操作XML数据,同时也能够将Java对象...

    maven-jaxb2-plugin-0.14.0.jar

    maven-jaxb2-plugin-0.14.0 下载 maven包 JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB...

    JAXB的安装包及插件

    **JAXB(Java Architecture for XML Binding)** 是Java平台中用于XML到Java对象绑定的API,它是Java EE和Java SE标准的一部分,允许开发者在Java应用程序中方便地将XML数据转换为Java对象,反之亦然。这个过程极大...

    jackson-module-jaxb-annotations-2.7.8-API文档-中英对照版.zip

    赠送Maven依赖信息文件:jackson-module-jaxb-annotations-2.7.8.pom; 包含翻译后的API文档:jackson-module-jaxb-annotations-2.7.8-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:...

    dom4j-1.6.1+httpclient-4.5.7+httpcore-4.4.5+jaxb-core+jaxb-impl.jar 亲测有用

    这种组合在进行RESTful Web服务调用、数据交换或者构建基于XML的网络应用时非常常见。 请注意,虽然这些库是独立的,但在实际项目中,它们经常被一起使用,以实现复杂的数据处理和网络通信需求。在选择和集成这些库...

    maven3.04+spring3.2.8+cxf2.7.12+tomcat7实现RESTFul风格的webservice服务

    自己在网上找了很多cxf实现rest风格的文章也不少,但是都讲的不全面,也没有lib包,所以自己参考网上零散的文章,搞了大半天才成功的。现在把源码发上来,java代码只有12K,主要是lib里面的全部jar包(spring、cxf等...

    jaxb2.3.0依赖jar.rar

    然而,你提到的问题在于,你正在寻找`jaxb-api-2.3.0.jar`和`jaxb-core-2.3.0.jar`这两个特定版本的JAXB库,但似乎在许多Maven仓库中无法找到它们。 JAXB 2.3.0引入了一些新的特性和改进,包括: 1. **Java SE 9+...

    jaxb-api-2.3.0-API文档-中文版.zip

    赠送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、api、中文...

    JAXB2 Webservice

    NULL 博文链接:https://endeavor416.iteye.com/blog/270507

    xstream和betwixt对xml、object的互转

    为了方便地将Java对象与XML进行转换,开发者常常使用一些库,如XStream和Betwixt。这两个工具都提供了简单易用的API,帮助我们实现XML到对象(Object-to-XML)和对象到XML(XML-to-Object)的转换。 **XStream** ...

    JAXB2 jaxb-api.jar jaxb-xjc.jar jaxb-impl.jar activation.jar

    JAXB2,全称为Java Architecture for XML Binding 2,是Java平台上的一个标准技术,用于在XML和Java对象之间进行绑定。它允许开发者通过简单的API将XML文档转换为Java对象,反之亦然,大大简化了XML数据处理。JAXB2...

    jaxb-api-2.3.0.jar中文-英文对照文档.zip

    Maven依赖:【***.jar Maven依赖信息(可用于项目pom.xml).txt】 Gradle依赖:【***.jar Gradle依赖信息(可用于项目build.gradle).txt】 源代码下载地址:【***-sources.jar下载地址(官方地址+国内镜像地址).txt】...

    jaxb-core-2.3.0.jar

    有关Maven项目中缺少jaxb-api的异常报错解决,jaxb-core-2.3.0.jar

    jaxb-api-2.2.11-API文档-中文版.zip

    赠送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、中文...

    JAXB 利用xsd文件生成java类

    - Maven可以通过`maven-jaxb2-plugin`或`jaxb2-maven-plugin`插件实现XSD到Java的编译。 - Gradle则可以使用`jaxb`插件或自定义Task来执行相同的操作。 6. **使用示例**: - 创建一个简单的XSD文件,例如: ```...

    使用maven、jaxb等技术构建可配置编译打包及可配置项目运行

    本篇文章将深入探讨如何利用Maven和JAXB技术来构建一个可配置的编译打包及项目运行环境,同时也会涉及XML配置文件的使用。 Maven是一个强大的Java项目管理工具,它提供了项目构建、依赖管理和项目信息管理等功能。...

Global site tag (gtag.js) - Google Analytics