Duvida conexao com o servidor e resposta

7 respostas
F

Boa tarde meus caros,

Tenho um servlet que faz um fetch no banco monta um vector com as respostas serializa os objetos e coloca em um DataOutputStream
Como faço pra enviar esse conteudo de volta para minha midlet?

abraços.

7 Respostas

C

HTTP, request e response.

Use o output da response.

F

Ola CLV, eu ja estava usando http request e response, ja ate consegui fazer transitar do server ao mobile uma string, porem agora o objetivo e transitar um vector com objetos mas ou menos assim:

Vector A contem objetos X;

Objetos X contem tipos primitivos e um vector B de Objetos Y;

Objetos Y tem tipos primitivos;

A minha duvida no momento e:

Se os objetos A e B implementam Serialize e sendo que a classe Vector tb implementa Serialize eu poderia aprenas dar um

byteArrayOutputStream baos = new byteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(bais);

oos.writeObject(A);

??

E ja aproveitando como seria o InputStream do outro lado ?

abracos.

grato pela atençao.

F

“fredlellis”:
Ola CLV, eu ja estava usando http request e response, ja ate consegui fazer transitar do server ao mobile uma string, porem agora o objetivo e transitar um vector com objetos mas ou menos assim:

Vector A contem objetos X;

Objetos X contem tipos primitivos e um vector B de Objetos Y;

Objetos Y tem tipos primitivos;

A minha duvida no momento e:

Se os objetos A e B implementam Serialize e sendo que a classe Vector tb implementa Serialize eu poderia aprenas dar um

byteArrayOutputStream baos = new byteArrayOutputStream();

ObjectOutputStream oos = new ObjectOutputStream(bais);

oos.writeObject(A);

??

</blockquote>

Bom ja resolvi e a resposta pra a pergunta e sim, se ambas as classes implementam serialize basta coloca no Stream, agora os metodos de se serializar infuelciam no desempenho da aplicacao, li alguns artigos que desta forma descrita acima, ou seja sem qualquer implementacao de readObject e writeObject por parte das classes que implementam Serialize, ha uma perda no desempenho da aplicacao.

abraços.

V

olá fredlellis…

Estou tentando fazer a transmissão dos dados do servlet para a midlet. Consegui tranmitir uma string, mas estou com dificuldades para buscar os dados do meu BD e passa-las para a midlet. Não tem como vc disponibilizar um trecho do seu código para que eu tenha uma idéia de como fazer.

F

Ola vinycc,
Bom o meu response foi feito de uma maneira diferente pq uso WebObjects para minha aplicacao no server, mas vou colocar os passos aqui em baixo, espero que ajude.

public WOActionResults getAssessmentPalmAction&#40;&#41; throws IOException
	&#123;

		String filtro = &#40;String&#41; request&#40;&#41;.formValueForKey&#40; "todo" &#41;;

		Vector arg2 = new Vector&#40;&#41;;

		arg2.addAll&#40; ConversorAssessmentPalm.AssessmentsConvertidos&#40; filtro &#41; &#41;; //Aqui pego os meus objetos do banco

		ByteArrayOutputStream baos = new ByteArrayOutputStream&#40;&#41;;

		ObjectOutputStream oos = new ObjectOutputStream&#40; baos &#41;;

		oos.writeObject&#40; arg2 &#41;;

		WOResponse response = new WOResponse&#40;&#41;; // isto e uma casse do WebObjects provavelmente vc usara o HttpServletResponse

		response.setContentStream&#40; new ByteArrayInputStream&#40; baos.toByteArray&#40;&#41; &#41;, 8192, baos.size&#40;&#41; &#41;;

		return response;

	&#125;

** Este metodo tem a mesma funcionalidade do public void doGet(HttpServletRequest request,HttpServletResponse response) de um servlet, espero que ajude.
abraço.

F

Ola meus caros,
Bom feito o descrito acima agora é de meu interesse enviar de volta ao servidor o mesmo vector que foi recebido anteriormente com algumas modificacoes claro.

Alguem poderia me dar um exemplo de como eu consigo enviar um ObjectOutputStream com um ByteArrayOutputStream com um vecotr serializado dentro dele?

Eu consigo fazer com uma String mas nao com o Stream, aguem pode me ajudar
grato pela atençao.

F

Resolvido, a baixo segue as linhas de codigos importantes:

hcon = &#40;HttpConnection&#41; Connector.open&#40; serverUrl + "/wa/setAssessmentPalm" &#41;;

				hcon.setRequestMethod&#40; HttpConnection.POST &#41;;

				hcon.setRequestProperty&#40; "User-Agent", "Profile/MIDP-1.0 Configuration/CLDC-1.0" &#41;;
				System.out.println&#40; "!!!!4 aqui" + vector.toString&#40;&#41; &#41;;
				hcon.setRequestProperty&#40; "Content-Language", "pt-BR" &#41;;
				hcon.setRequestProperty&#40; "Accept", "application/octet-stream" &#41;;

				hcon.setRequestProperty&#40; "Connection", "close" &#41;;

				byte&#91;&#93; data = formParamUP&#40;&#41;;
				hcon.setRequestProperty&#40; "Content-Length", Integer.toString&#40; data.length &#41; &#41;;

				OutputStream os = hcon.openOutputStream&#40;&#41;;

				os.write&#40; data &#41;;

				os.close&#40;&#41;;
Criado 18 de abril de 2007
Ultima resposta 8 de mai. de 2007
Respostas 7
Participantes 3