Ben*_*nji 7 java jax-ws marshalling
我正在使用NetBeans的Web服务生成工具.我查看了可用的教程,但找不到任何关于如何使用自定义类作为返回类型的内容.我读过的大多数教程都不比Hello World复杂:它们采用并返回像Strings这样的简单类型.
所以说我想要一个有3个字段的类:String,int和double [].到目前为止,我可以传递自己的类的唯一方法是创建"包络类",没有方法,没有参数的构造函数,并且所有字段都声明为public.我更喜欢编写标准的Java类.显然我不能通过SOAP发送方法,但我认为有一种方法可以在编组类时忽略这些方法,并且只有Marshall这些字段.
有人告诉我有注释可以促进这一点,但我找不到任何关于如何实现它们的教程.任何指导将不胜感激.
JAX-WS 使用JAXB来映射类型,因此类应该符合该规范。您可以在java.xml.bind.annotations包中找到 JAXB 注释。
如果您想封送未注释的类,请遵循 JavaBeans 的规则:
public class Foo {
private String bar;
public String getBar() { return bar; }
public void setBar(String bar) { this.bar = bar; }
public static void main(String[] args) {
Foo foo = new Foo();
foo.setBar("Hello, World!");
ByteArrayOutputStream out = new ByteArrayOutputStream();
JAXB.marshal(foo, out);
foo = (Foo)
JAXB.unmarshal(new ByteArrayInputStream(out.toByteArray()), Foo.class);
System.out.println(foo.getBar());
}
}
Run Code Online (Sandbox Code Playgroud)
如果您想使用带参数的构造函数等,请查看规范中有关工厂方法和适配器的部分。