我创建了俩个数组参数和Objects数组,我想传递它们,我可以用下面的方法吗?
@POST
@Path("Test3")
@Produces("text/plain")
@Consumes({"application/json"})
public String Test3(String[] id1,String[] id2 ,Object [] oo) {
String result = "Hello ";
....
....
return result;
}
我要传递到这个方法里相应的 json 是什么?
我使用了很多的jsons,总是获得下面的错误:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>GlassFish Server Open Source Edition 4.0 - Error report</title><style type="text/css"><!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}HR {color : #525D76;}--></style> </head><body><h1>HTTP Status 500 - Internal Server Error</h1><hr/><p><b>type</b> Exception report</p><p><b>message</b>Internal Server Error</p><p><b>description</b>The server encountered an internal error that prevented it from fulfilling this request.</p><p><b>exception</b> <pre>javax.servlet.ServletException: Servlet.init() for servlet entities.service.ApplicationConfig threw exception</pre></p><p><b>root cause</b> <pre>org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization.
[[FATAL] Method public java.lang.String entities.service.ItemFacadeREST.Test3(java.lang.String,java.lang.String) on resource class entities.service.ItemFacadeREST contains multiple parameters with no annotation. Unable to resolve the injection source.; source='ResourceMethod{httpMethod=POST, consumedTypes=[application/json], producedTypes=[text/plain], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=MethodHandler{handlerClass=class entities.service.ItemFacadeREST, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@cdf30b]}, handlingMethod=public java.lang.String entities.service.ItemFacadeREST.Test3(java.lang.String,java.lang.String), parameters=[Parameter [type=class java.lang.String, source=null, defaultValue=null], Parameter [type=class java.lang.String, source=null, defaultValue=null]], responseType=class java.lang.String}, nameBindings=[]}']</pre></p><p><b>note</b> <u>The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 4.0 logs.</u></p><hr/><h3>GlassFish Server Open Source Edition 4.0 </h3></body></html>
对于http post我想从android中调用。
用BasicNameValuePair设置成Enity进行post
id1=[a,b]&id1=[c,d]&oo=[1,2,e]
入参
{
"number":"1234",
"fnumber":"123",
"assnum":"2"
}
/**
* 根据销售品ID获取销售品详情接口
* @param productId 销售品ID
* @param channelId 渠道ID
* @return
*/
@Path("/getProductDetailsInfoByProductId")
@POST
@Consumes("application/json; charset=UTF-8")
@Produces("application/json; charset=UTF-8")
public BaseExecuteResult getProductDetailsInfoByProductId(String json) {
JSONObject object = JSONObject.parseObject(json);
String productId = object.getString("productId");
String channelId = object.getString("channelId");
BaseExecuteResult result = productServiceAPI.getProductDetailsInfoByProductId(productId,channelId);
return result;
}