「java注册jaxb」Java注册表清理

博主:adminadmin 2022-11-25 09:03:09 58

本篇文章给大家谈谈java注册jaxb,以及Java注册表清理对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

JAVA中怎么把XML文件中的数据通过JAXB技术保存到List集合里面去,为什么我的老报错找不到根节点?

先看看你给出的路径对不对。File路径。接着看看你xml文件符不符合jaxb规范。你通过注解的方式配置的xml,那你还得看看xmlElement下的每一个uri和你java po类的uri对应不。也就是看字段的名字对应不,问题的关键 是处在这里,uri不对应。该为一致或是@XMLElement(name="uri")

继承类怎么用jaxb解析获取父类的属性

JAXB中的继承问题

问题

JAXB是我用过的java处理XML的方法中做方便的一个,在jaxb中如何使用类的集成关系有一个小小的需要注意的地方。看下面的两端XML。

XML

示例1:

a

b/b

c/c

a

XML示例2:

a

b/b

d/d

a

这两段XML的唯一差别就在c元素与d元素。为了生成这两个XML,有几种方案。

方案一

不利用类的继承来重用代码,写两套Java代码, 如:

@XmlRootElement(name = a)

public class A

{

B b;

C c:

}

@XmlRootElement(name = a)

public class A2

{

B b;

D d:

}

public class B {}

public class D {}

这一方案不是我们想要的,虽然可以解决问题,但是不能重用两个XML中共有的结构。

方案二

利用一个父类表示两个XML之间的共同的结构,用两个子类扩展这个父类,分别添加 C 和 D

元素。

代码如下:

@XmlRootElement(name = "a")

public class A {

B

b;

}

public class B {}

public class C {}

public class D

{}

public class E extends A {

C c;

}

public class F

extends A {

D d;

}

这一方案看似很直观,但是实践中却发现 E 和 F 却都只能生成 父类的

部分,如下的XML:

a

b/b

a

即使把 @XmlRootElement(name = “a”) 移到 E 和 F类上也行不通。

方案三

用一个类代表共同的结构,用一个父类代表C和D元素,在用两个类代表具体化的C和D类,如:

@XmlRootEelemnt(name =

"a")

public class A {

B b;

@XmlElements({

@XmlElement(name =

"c", type=C.class),

@XmlElement(name = "d", type=D.class)

})

E

e;

}

public class B {}

public class E {}

public class C extends

E {}

public class D extends E {}

这样做才最终达到目的。关键点就是@XmlElements的使用。

java中利用jaxb转换xml的格式?

package com.jaxb.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;

}

}

关于jaxb用jaxb如何实现java对象和xml的转换

既然你不想定义result这个类,那你service中的属性都可以不用定义了,直接使用XmlJavaTypeAdapter这样大的注解去marshal、unmarshal对象xml就行了。一般使用jaxb,如果属性为某个类库中定义的类,而需要转换为xml时,通过XmlJavaTypeAdapter来进行特殊处理。如插件开发中,元素属性为:org.eclipse.draw2d.geometry.Rectangle(矩形)时,通过XmlJavaTypeAdapter转换,如下所示: import javax.xml.bind.annotation.adapters.XmlAdapter; import org.eclipse.draw2d.geometry.Rectangle; public class LayoutXmlAdapter extends XmlAdapterString, Rectangle{@Overridepublic String marshal(Rectangle v) throws Exception{if(v == null) return ""; return v.x + "," + v.y + "," + v.width + "," + v.height;}@Overridepublic Rectangle unmarshal(String v) throws Exception{if(v != null v.trim().length() 0){String[] ps = v.split(","); if(ps.length ==4){int x = Integer.parseInt(ps[0]); int y = Integer.parseInt(ps[1]); int width = Integer.parseInt(ps[2]); int height = Integer.parseInt(ps[3]); return new Rectangle(x, y, width, height);}}return new Rectangle(0, 0, 0, 0);}}如果你非要不定义result类,直接转换为: 那你可以使用XmlJavaTypeAdapter注解。

如何在Java中 提供 RESTful Web 服务

通过REST风格体系架构,请求和响应都是基于资源表示的传输来构建的。资源是通过全局ID来标识的,这些ID一般使用的是一个统一资源标识符(URI)。客户端应用使用HTTP方法(如,GET、POST、PUT或DELETE)来操作一个或多个资源。通常,GET是用于获取或列出一个或多个资源,POST用于创建,PUT用于更新或替换,而DELETE则用于删除资源。

例如,GET http //host/context/employees/12345将获取ID为12345的员工的表示。这个响应表示可以是包含详细的员工信息的XML或ATOM,或者是具有更好UI的JSP/HTML页面。您看到哪种表示方式取决于服务器端实现和您的客户端请求的MIME类型。

RESTful Web Service是一个使用HTTP和REST原理实现的Web Service。通常,一个RESTful Web Service将定义基本资源URI、它所支持的表示/响应MIME,以及它所支持的操作。

本文将介绍如何使用Spring创建Java实现的服务器端RESTful Web Services。这个例子将使用浏览器、curl和Firefox插件RESTClient作为发出请求的客户端。

本文假定您是熟悉REST基本知识的。

Spring 3的REST支持

在Spring框架支持REST之前,人们会使用其他几种实现技术来创建Java RESTful Web Services,如Restlet、RestEasy和Jersey。Jersey是其中最值得注意的,它是JAX-RS(JSR 311)的参考实现。

Spring是一个得到广泛应用的Java EE框架,它在版本3以后就增加了RESTful Web Services开发的支持。虽然,对REST的支持并不是JAX-RS的一种实现,但是它具有比标准定义更多的特性。REST支持被无缝整合到Spring的MVC层,它可以很容易应用到使用Spring构建的应用中。

Spring REST支持的主要特性包括:

注释,如@RequestMapping 和 @PathVariable,支持资源标识和URL映射

ContentNegotiatingViewResolver支持为不同的MIME/内容类型使用不同的表示方式

使用相似的编程模型无缝地整合到原始的 MVC 层

创建一个示例RESTful Web Service

本节中的例子将演示Spring 3环境的创建过程,并创建一个可以部署到Tomcat中的“Hello World”应用。然后我们再完成一个更复杂的应用来了解Spring 3 REST支持的重要概念,如多种MIME类型表示支持和JAXB支持。另外,本文还使用一些代码片断来帮助理解这些概念。

Hello World:使用Spring 3 REST支持

要创建这个例子所使用的开发环境,您需要:

IDE:Eclipse IDE for JEE (v3.4+)

Java SE5 以上

Web 容器:Apache Tomcat 6.0(Jetty或其他容器也可)

Spring 3框架(v3.0.3是本文编写时的最新版本)

其他程序库:JAXB 2、JSTL、commons-logging

在 Eclipse 中创建一个Web应用,然后设置Tomcat 6作为它的运行环境。然后,您需要设置web.xml文件来激活Spring

WebApplicationContext。这个例子将Spring bean配置分成两个文件:rest-servlet.xml 包含与MVC/REST有关的配置,rest-context.xml包含服务级别的配置(如数据源 beans)。清单 1 显示了web.xml中的Spring配置的部分。

清单 1. 在web.xml中激活Spring WebApplicationContext

以下是引用片段:

contextConfigLocation

/WEB-INF/rest-context.xml

!-- This listener will load other application context file in addition to

rest-servlet.xml --

org.springframework.web.context.ContextLoaderListener

rest

org.springframework.web.servlet.DispatcherServlet

1

rest

/service/*

在rest-servlet.xml文件中创建Spring MVC的相关配置(Controller、View、View Resolver)。清单 2 显示了其中最重要的部分。

清单 2. 在rest-servlet.xml文件中创建Spring MVC配置

以下是引用片段:

bean class="org.springframework.web.servlet.mvc.annotation

.DefaultAnnotationHandlerMapping" /

bean class="org.springframework.web.servlet.mvc.annotation

.AnnotationMethodHandlerAdapter" /

bean id="jaxbMarshaller"

class="org.springframework.oxm.jaxb.Jaxb2Marshaller"

dw.spring3.rest.bean.Employee

dw.spring3.rest.bean.EmployeeList

bean id="employees" class=

"org.springframework.web.servlet.view.xml.MarshallingView"

bean id="viewResolver" class=

"org.springframework.web.servlet.view.BeanNameViewResolver" /

上面的代码中:

Component-scan启用对带有Spring注释的类进行自动扫描,在实践中,它将检查控制器类中所定义的@Controller注释。

DefaultAnnotationHanlderMappings和AnnotationMethodHandlerAdapter使用@ReqeustMapping注释的类或函数的beans由Spring处理这个注释将在下一节进行详细介绍。

Jaxb2Mashaller定义使用JAXB 2进行对象XML映射(OXM)的编组器(marshaller)和解组器(unmarshaller )

MashallingView定义一个使用Jaxb2Mashaller的XML表示view

BeanNameViewResolver使用用户指定的bean名称定义一个视图解析器

本例将使用名为“employees”的MarshallingView。

这样就完成了Spring的相关配置。下一步是编写一个控制器来处理用户请求。清单3显示的是控制器类。

如何在java中使用JAXB返回Map格式返回参数不报错

在Java中,定义方法返回Map跟返回其他类型一样,只需要指定方法的返回类型为Map即可。

具体实现如下:

public MapString,Object doSomething(){...}

Map是Java中的一个键值对接口,开发中经常会用到。Map接口提供三种collection

视图,允许以键集、值集或键-值映射关系集的形式查看某个映射的内容。映射顺序 定义为迭代器在映射的 collection

视图上返回其元素的顺序。Map接口的实现子类有很多,其中较为常用的有HashMap, Hashtable,TreeMap,ConcurrentHashMap等。

关于java注册jaxb和Java注册表清理的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。