jax-ws
soap-webservice
是否可以输出json
格式而不是xml
?
@Component
@WebService
public class HRSService {
@WebMethod
public String test(String value) {
return value; //returned as XML. JSON possible?
}
}
答案 0 :(得分:5)
显然可以按照https://jax-ws-commons.java.net/json/
指示的说明进行操作总结:
@BindingType(JSONBindingID.JSON_BINDING)
public class MyService {
public Book get(@WebParam(name="id") int id) {
Book b = new Book();
b.id = id;
return b;
}
public static final class Book {
public int id = 1;
public String title = "Java";
}
}
您需要在jaxws-json.jar
中使用WEB-INF/lib
才能实现此目的。
我希望它有所帮助!
答案 1 :(得分:1)
这已经很晚了。我最近回到Java编程,但对于将来访问此页面的人。 JAXWS metro文档中的示例仅适用于javascript。我将以下内容与JSONObject一起使用:
@WebServiceProvider
@ServiceMode(value = Service.Mode.MESSAGE)
@BindingType(value=HTTPBinding.HTTP_BINDING)
然后实现Provider(DataSource),如例:
public class clazz implements Provider<DataSource>
{ ...
@Override
public DataSource invoke(DataSource arg)
{
...
String emsg = "Request Parameter Error.";
String sret = create_error_response(emsg);
return getDataSource(sret);
}
}
private DataSource getDataSource(String sret)
{
ByteArrayDataSource ds = new ByteArrayDataSource(sret.getBytes(), "application/json");
return ds;
}
public String create_error_response(String msg)
{
JSONObject json = new JSONObject();
json.put("success", new Boolean(false));
json.put("message", msg);
return json.toString();
}