Pontus Posted January 8, 2010 at 04:52 PM Report Share #304826 Posted January 8, 2010 at 04:52 PM Pessoal estou com uma grande dor de cabeça com um problema que me surgiu Tenho um webservice que devolve 1 Objecto ServResposta Dentro deste Objecto tenho outro Objecto Resposta e um array com filmes cada filmes tem Nome, data, actor, actriz O objecto resposta foi criado de modo a enviar para o cliente mensagens de erro/sucesso do que se passa do lado do servidor Agora o problema: quando testo o WS o envelope XML vem com os dados preenchidos e e com a mensagem correcta. No entanto quando os dados sao mostrados a array dos filmes está vazia Eu executo tudo atraves do eclipse, e lanço o cliente que o eclipse disponibiliza para testes. Alguma sugestão do porque da array chegar à parte do display vazia, quando no envelope XML estão os dados? Link to comment Share on other sites More sharing options...
M6 Posted January 8, 2010 at 05:18 PM Report Share #304834 Posted January 8, 2010 at 05:18 PM Sem mais informação diria que o método responsável por obter os valores do XML está a fazer borrada. Ou não está a ler no local certo, ou tem um erro que esconde e por isso devolve uma string vazia, ou algo assim. Faz debug (entra mesmo dentro das classes cliente) no método responsável por obter esse valor e vê se ele está a fazer tudo bem. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Pontus Posted January 8, 2010 at 05:26 PM Author Report Share #304840 Posted January 8, 2010 at 05:26 PM eu já fiz debug no momento em quem devolvo o objecto o objecto tem a mensagem e a array está preenchida. eu tb pensei no metodo, mas mesmo quando lanço o webservice pelo eclipse, este abre um cliente. Nesse mesmo cliente criado pelo eclipse eu vejo a mensagem, mas nao vejo os dados do array. No entanto, se for ver o conteudo do xml, os dados estão lá. Que mais informações precisarias? Link to comment Share on other sites More sharing options...
M6 Posted January 8, 2010 at 05:29 PM Report Share #304841 Posted January 8, 2010 at 05:29 PM Tens de ver ao nível mais baixo, onde o valor do XML é atribuído ao campo que vai ser retornado e que, como tal, deve ter o conteúdo do XML. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Pontus Posted January 8, 2010 at 05:36 PM Author Report Share #304845 Posted January 8, 2010 at 05:36 PM desculpa a minha ignorância, mas como posso fazer isso? Link to comment Share on other sites More sharing options...
M6 Posted January 8, 2010 at 06:04 PM Report Share #304854 Posted January 8, 2010 at 06:04 PM Usando a funcionalidade de debug do Eclipse e fazendo "step into" (para entrar dentro das funções/métodos) a partir da função que usas para receber o valor em causa. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Pontus Posted January 11, 2010 at 03:43 PM Author Report Share #305451 Posted January 11, 2010 at 03:43 PM M6 de facto era a nível mais baixo que estava a ocorrer o erro. No entanto mudei de Axis para Axis2 no desenvolvimento dos webservices. Enquanto o Axis2, no cliente ele me diz que o tipo que vem do WS é JAXBElement, o Axis não o referia. Será problema do Axis com objectos complexos? Link to comment Share on other sites More sharing options...
M6 Posted January 11, 2010 at 03:49 PM Report Share #305454 Posted January 11, 2010 at 03:49 PM Não tenho a certeza. O Axis e o Axis2 são diferentes, têm estruturas diferentes, basta ver as classes/stubs/e afins que são gerados, no Axis 2 ficas com uns 2 "mega ficheiros" enquanto no Axis ficas com tudo arrumado em vários ficheiros (um ficheiro por classe) tanto quanto me lembro. I JAXBElement pode muito bem ser apenas uma class/interface do próprio Axis2 que o Axis não tem por usar outra coisa. Não é suposto o Axis2 "baralhar-se" com objectos complexos, mas pode ser que seja daí. Tens problemas noutros campos ou só nesse? 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Pontus Posted January 11, 2010 at 04:17 PM Author Report Share #305455 Posted January 11, 2010 at 04:17 PM Tinha só ai. Ou seja, quando o webservice me enviava o conteudo do objecto pessoa (por exemplo) vinha tudo vazio. Agora estou a receber tudo direitinho, por isso a minha duvida se o problema não seria mesmo do Axis e resolvido no Axis2. Principalmente porque a nivel da programação nada mudou Link to comment Share on other sites More sharing options...
M6 Posted January 11, 2010 at 04:43 PM Report Share #305458 Posted January 11, 2010 at 04:43 PM Pode ser que sim, que o Axis2 tenha resolvido um conjunto de problemas/limitações que existiam no Axis. 10 REM Generation 48K! 20 INPUT "URL:", A$ 30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50 40 PRINT "404 Not Found" 50 PRINT "./M6 @ Portugal a Programar." Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now