Мне нужен Java WebService, который можно использовать с Appcelerator Titanium .
Мне нужно иметь возможность отправить JavaScript илиОбъект JSON и получают объект JSON или XML.
Я пробовал Jax-WS, Jax-RS и Axis2, но не повезло.Однако, если вы знаете, как заставить его работать с любым из них, возможно, я сделал что-то не так и мог бы использовать помощь, чтобы заставить его работать.
В противном случае, кто-нибудь знает о хорошем варианте?
Заранее спасибо.
--- РЕДАКТИРОВАТЬ --- @ pace
Вот то, что я пытался использовать JAX-RS, но я не могу получить a JSON-объект из POST метода с ним.
@Path("/getUserByName")
@POST
@Consumes("application/json")
@Produces("application/json")
public Person getUserByName(@PathParam("name")String name, @PathParam("lastname")String lastname) {
return new Person(name, 23, lastname);
}
Я вызываю WS с HTTPRequest, но это не позволяет мне отправлять JSON-объект.Есть идеи?
--- РЕДАКТИРОВАТЬ 2 ---
var xhr = Titanium.Network.createHTTPClient();
xhr.setRequestHeader('Content-Type', 'application/json');
var url = 'http://10.0.0.114:8080/ClippingExpressMobileWS-JaxRS/usuario/getUsuarioPorNome';
var method = 'POST';
xhr.open('POST', url);
xhr.onload = function() {
var json = this.responseText;
//This is just a printf() or a System.out.println()
Ti.API.info(json);
}
xhr.onerror = function(e) {
alert(e);
}
var obj = {name: 'Roger', abe: 22, lastname: 'Waters'};
//Then I've tried this:
xhr.send(obj); //This doesn't give any errors on the WS, but the xhr.onerror function is called.
//And this:
xhr.send(JSON.stringify(obj)); //This gives the error blow.
- Ошибка, генерируемая xhr.send (JSON.stringify (obj))
A message body reader for Java class br.com.clippingexpressmobilews.entidades.Pessoa, and Java type class br.com.clippingexpressmobilews.entidades.Pessoa, and MIME media type application/octet-stream was not found.
The registered message body readers compatible with the MIME media type are:
[1/20/12 2:17:59 PM] Natália Oliveira: Jan 20, 2012 2:11:29 PM com.sun.jersey.spi.container.ContainerRequest getEntity
SEVERE: A message body reader for Java class br.com.clippingexpressmobilews.entidades.Pessoa, and Java type class br.com.clippingexpressmobilews.entidades.Pessoa, and MIME media type application/octet-stream was not found.
The registered message body readers compatible with the MIME media type are:
application/octet-stream ->
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.RenderedImageProvider
*/* ->
com.sun.jersey.core.impl.provider.entity.FormProvider
com.sun.jersey.core.impl.provider.entity.StringProvider
com.sun.jersey.core.impl.provider.entity.ByteArrayProvider
com.sun.jersey.core.impl.provider.entity.FileProvider
com.sun.jersey.core.impl.provider.entity.InputStreamProvider
com.sun.jersey.core.impl.provider.entity.DataSourceProvider
com.sun.jersey.core.impl.provider.entity.XMLJAXBElementProvider$General
com.sun.jersey.core.impl.provider.entity.ReaderProvider
com.sun.jersey.core.impl.provider.entity.DocumentProvider
com.sun.jersey.core.impl.provider.entity.SourceProvider$StreamSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$SAXSourceReader
com.sun.jersey.core.impl.provider.entity.SourceProvider$DOMSourceReader
com.sun.jersey.json.impl.provider.entity.JSONJAXBElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONArrayProvider$General
com.sun.jersey.json.impl.provider.entity.JSONObjectProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLListElementProvider$General
com.sun.jersey.core.impl.provider.entity.XMLRootObjectProvider$General
com.sun.jersey.core.impl.provider.entity.EntityHolderReader
com.sun.jersey.json.impl.provider.entity.JSONRootElementProvider$General
com.sun.jersey.json.impl.provider.entity.JSONListElementProvider$General
com.sun.jersey.json.impl.provider.entity.JacksonProviderProxy
* 1037Опять какие-нибудь идеи?И большое спасибо за помощь!