Web Service em Axis acessando BD

10 respostas
G

Estou criando um web service e preciso que ele acesse um banco SQL Server

Como faço para o WS acessar a classe que faz a conexão?

Para criar o web service basta copiar o arquivo .java para a pasta do Axis no webapps e renomear para .jws
e em qual pasta coloco a classe de conexão?

tentei colocar nesta pasta (C:\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\jwsClasses) e sempre da o mesmo erro:

C:\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\jwsClasses\WebServiceTeste.java:11: Class DB not found.
DB db = new DB(“teste”,“sa”,“teste”);
^

Line 11, column 14: Class DB not found.

agradeço a quem me ajudar.

10 Respostas

E

opa beleza?

bom até onde eu me lembre de app web em java dentro de web-inf a classe
dos binários em java é a \classes, a sua classe que não encontrou
está onde? já tentou manter tudo dendo de \classes :wink:

[]´s

G

deu certo em colocar a classe de conexão DB na pasta \classes do web-inf

nao da mais o erro de class not found

porém, o simples fato de instanciar a classe BD no Web Service ja dá um erro na hora de acessá-lo:

...
public int testeWS()
{
	DB db = new DB("bdteste","sa","111");

	int i =0;
	
    	return i;
}
...

erro:

SoapFault - faultcode: ‘soapenv:Server.userException’ faultstring: ‘java.lang.reflect.InvocationTargetException’ faultactor: ‘null’ detail: [EndTag </detail>]

eu nao sei se to fazendo alguma burrada, nao consegui enchergar…

to pensando em fazer a conexao com o banco diretamente ali, sem usar classe

G

só pra esclarecer, a classe DB funciona corretamente, e seu comentar a linha que instancia a classe ( DB db = new DB(“bdteste”,“sa”,“111”); ), o web service funciona normalmente sem erros.

E

bom agora fiquei em duvida…
você conseguiu utilizar a classe DB no seu web service? :roll:

quanto ao erro que tu mencionou saiu uma descrição em log ou no
console? continua ocorrendo a de classe não encontrada? aparece
algo a mais alem:

[]'s

G

nao consegui utilizar a classe DB no Web Service

nao da mais erro de classe nao encontrada, apenas este erro:

SoapFault - faultcode: ‘soapenv:Server.userException’ faultstring: ‘java.lang.reflect.InvocationTargetException’ faultactor: ‘null’ detail: [EndTag </detail>]

e o erro ocorre apenas acrescentando isso:
DB db = new DB(“bdteste”,“sa”,“111”);

dai tentei o seguinte:
fazer toda a conexao ao banco e consulta dentro do proprio web service, sem classe
e deu certo, funcionou

o problema está em como o web service faz pra encontrar e utilizar a classe de conexao

uma outra coisa que acontece, que talvez alguem possa me ajudar:

para trabalhar com XML no J2ME, é necessário alguns pacotes auxiliares: o Ksoap e o kxml
eu baixei eles e configurei conforme tutoriais que vi na internet, porem, no Eclipse, ele da erro no import, fica sublinhado em vermelho:

import org.ksoap.SoapObject;
import org.ksoap.transport.HttpTransport;

mensagem de erro: “The import org.ksoap.transport.HttpTransport cannot be resolved”

e no momento de instanciar tambem:

SoapObject client = new SoapObject(url,“login”);

porém, o meu Eclipse compila normalmente e executa o Midlet normal

quando vou em outro PC, devido a esse erro e ele nao compila

eu copiei a pasta org/ksoap para dentro da minha pasta de projeto J2ME

a estrutura está +/- assim:

PastaProjeto
—.settings
—org
------kobjects
------ksoap
------kxml
—src
—verified

o midlet está dentro de src

porque o import nao encotra a pasta org?

eu teria que ir no projeto e dar um New-> Package para todas as pastas do org e somente depois copiar apenas as classes para dentro das pastas??

agradecerei muito se alguem puder me ajudar

E

opa beleza?

bom tu disse que está usando o eclipse…
como está a configuração do seu projeto?

para usar pastas /src e /bin?

se for coloque o diretorio /org dentro do diretorio /src,
provavelmente funcione… :roll:

[]´s

G

obrigado erko pelas dicas

só pra esclarecer quem estava acompanhando:

consegui resolver os problemas, o unico porém ficou em fazer a conexao ao banco diretamente no web service, sem uma classe especifica para fazer a conexao…

ainda estou trabalhando em cima, assim que tiver um tempo explicarei como eu fiz para poder servir de ajuda a outros…

ainda to apanhando em algumas coisas…

fiz uma aplicação teste para fazer login via web service e retornar o id do usuario. No emulador funcionou, no meu celular deu erro de IOException…

em breve explico o restante

se alguem ja teve experiencia com isso e puder me ajudar agradeço, e trabalho de monografia

abraço a todos

G

vou pedir uma ajuda aqui mesmo, se precisar crio outro topico:

como que faço pra um web service criado via Axis, retornar um Array??
pode ser um Array de String, ou de Objetos, qualquer forma ja me ajuda…

não consegui fazer isso…

parece que tem que criar vi schema, mas nao sei como fazer…

se alguem puder dar uma dica

A

Ola estou com o mesmo problema do nosso amigo tentando criar uma classe de conexão, me falaram que eu precisaria colocar o .jar do driver dentro do lib do axis.
mas ainda não deu certo.
Será que alguém ja conseguiu desenvolver o WS dessa forma.

Grato

A

Caros Companheiros de forum…

Só para Registrar para aqueles que tiverem o mesmo problema que o meu.
De criar um web service com uma classe de banco.

Eu resolvi o problema da seguinte forma.

como o WS é uma aplicação web ele não reconhece o Driver de conexão do banco de dados.

1 - eu baixei o driver neste site : http://ftp.plusline.de/mysql/Downloads/Connector-J/
2 - eu coloquei o driver dentro da pasta lib do axis e: C:\Apache Tomcat 7.0.22\webapps\axis\WEB-INF\lib

eu testei de varias formas so com isso ja resolveu.
so que se vc quiser garantir, na aplicação tomcat existe uma aba java e la o classpath utilizado pelo java,
coloque este caminho la C:\Apache Tomcat 7.0.22\webapps\axis\WEB-INF\lib\mysql-connector-java-5.1.20-bin.jar

que esta susa…

valeu galera

abraço

Criado 5 de maio de 2006
Ultima resposta 6 de jun. de 2012
Respostas 10
Participantes 3