0

를 반환합니다.Appcelerator 티타늄 - 필요 자바 WebService에 자바 스크립트/JSON 객체를받을 내가 <strong>Appcelerator 티타늄</strong>와 함께 사용할 수있는 <strong>자바</strong> WebService를 필요 JSON/XML

나는 자바 스크립트 또는 JSON 객체와 는 JSON 객체 또는 XML을받을을 보내 할 수 있어야합니다.

Jax-WS, Jax-RS 및 Axis2를 사용해 보았지만 행운은 없습니다. 그러나, 당신이 그 (것)들과 작동하는 방법을 아는 경우에, 어쩌면 나는 틀린 무언가를하고 그것을 일하기 위하여 도움을 이용할 수 있었다.

그렇지 않으면 누구에게 좋은 옵션이 있습니까?

미리 감사드립니다.

가 여기에 내가 JAX-RS를 사용하여 시도하지만 그와 POST 방법에서JSON 객체를받을 수 없습니다 무엇

--- 편집 --- @pace.

@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 

다시 말하지만, 어떤 아이디어? 그리고 도움을 주셔서 대단히 감사합니다!

+0

JAX-RS는이를 수행 할 수 있어야합니다. 정확히 어떤 문제에 빠졌습니까? – Pace

+0

방금 ​​WS 작성 방법에 대한 정보가있는 게시물을 편집했습니다. :) –

+0

HTTPRequest로 웹 서비스를 호출한다고하면 클라이언트 라이브러리가 JSON을 지원하지 않는 것입니까? 다른 웹 서비스를 호출하려고합니까? 또한 JSON을 받으려면 메서드에서 Person 객체를 가져와야합니다. 귀하의 방법은 경로에서 이름과 성을 얻고 있지만 귀하의 경로는 성/이름을 제공하는 설정이 아닌 것 같습니다. http://jersey.java.net/nonav/documentation/latest/user-guide.html#json에 설명 된대로 web.xml에 POJOMappingFeature를 설정 했습니까? – Pace

답변

0

아래와 같이 메소드 서명을 변경해보십시오 (getName과 getLastname을 추측하고 있습니다). PathParam 주석은 URL에서 값을 가져 오는 데 사용되지만 실제로 나타나지는 않습니다.

@Path("/getUserByName") 
@POST 
@Consumes("application/json") 
@Produces("application/json") 
public Person getUserByName(Person input) { 
    return new Person(inpug.getName(), 23, input.getLastname()); 
}