Fórum Soap em Apache #11580

13/11/2009

0

Fizemos uma DLL (Soap acessando FB) e colamos em um servidor Win2003 com Apache. Ao tentar acessar o serviço o servidor quer é enviar a DLL para baixar em nossa máquina. Já se geramos o soap em .EXE roda perfeito.

Alguma dica?
José Aguiar

José Aguiar

Responder

Posts

13/11/2009

Rodrigo Mourão

Olá Amigo,

Ao começar a ler sua dúvida pensei logo: "É so dar permitar para executar scripts e executáveis no diretorio da aplicação dentro do apache".

MAs você cita que com exe funciona. Muito estranho pois tanto um exe quanto uma dll são assembly. Vou verificar pois não sou um eximio conhecedor de apache, faço apenas o basico, configurações simples.

Irei verificar e entro em contato !!

Abs!!

Responder

Gostei + 0

14/11/2009

José Aguiar

Se preverir posso enviar para vc os fontes, é coisa simples ainda estou só testando.
Responder

Gostei + 0

16/11/2009

Rodrigo Mourão

Ficaria agradecido se pudesse me enviar.

use o Disco virtual !!!

Abs!!

Responder

Gostei + 0

25/11/2009

Rodrigo Mourão

Olá amigo,

Estou aguardando os arquivos para analise.

Att,


Responder

Gostei + 0

30/11/2009

Rodrigo Mourão

Olá Amigo,

Estaremos colocando o chamado como cancelado. Caso deseja poderá reabrí-lo que voltaremos a atendê-lo.

Abs!!!
Responder

Gostei + 0

13/02/2010

José Aguiar

Passo para vc um pequeno exemplo de como estamos desenvolvendo os código. Como tinha falando antes não consiguimos fazer o "servidor" pra rodar em apache como DLL só como EXE.

Outra coisa fizemos o teste com o EXE rodano na mesma máquina que o apache e em rede LAN e funciona, porém ao instalar na empresa A do cliente o modulo servidor com apache e na empresa B, modulo cliente dá um erro, msg de erro anexada.

Já testamos o serviço do lado cliente pelo browse e responde blz, puxa todas as informações do servidor apache mas na hora de utiliza o modulo cliente na o referido erro. O que pode está acontecendo??

Anexo:

http://www.aguiarsistemas.com.br/Soap.rar

OBS:

1 - Utilizamos FB1.5
2 - Delphi 7
3 - DBX
Responder

Gostei + 0

14/02/2010

Rodrigo Mourão

Olá José,

Li sua resposta agora e ainda nao baixei o arquivo, vou verificar sim com certeza mas uma coisa me ocorreu. Se via browser vc consegue enxergar o servidor e listar os serviços e etc e pela app cliente não então o problema pode estar na maneira em que o cliente acessa o servidor, algo referente e portas, firewall, rede do seu cliente, enfim vou uma sugestão sem nem mesmo ver seus arquivos.

Vou baixar, verificar e entro em contato.

Att,

Responder

Gostei + 0

18/02/2010

Rodrigo Mourão

Olá,

Estamos trabalhando no seu chamado, peço a gentileza que aguarde que em breve entraremos em contato.

Att,
Responder

Gostei + 0

24/02/2010

Rodrigo Mourão

Olá José,

Não há nada de erra tanto com o servidor quanto com o cliente, eu duvido muito que o problema esteja no metodos utilizando até porque voce neste fontes esta usndo componentes CDS para acessar a base.

Você chegou a verificar as permissões do servidor onde o Server esta rodando, questões de rede, acesso aos diretorios e etc ?????

Outra sugestão, e ai mais trabalhoso seria criar um metodo no seu servidor de app um Hello World mesmo. Teste nesta arquitetura para ver se vai dar Timeout se der faça o seguinte.  Pegue o endereço WSDL gerado pelo servidor  vai na alicação cliente e importa o wsdl utilizando o WSDL importer. Isso vai gerar um .pas, uma especie de proxy.

Chame o método Hello World via proxy para ver o que acontece. Assim podemos ver se o proble e com o SOAP Connection ou algo do genero ou com o acesso ao servidor mesmo.


Fico no aguardo !!

ATT,
Responder

Gostei + 0

27/02/2010

José Aguiar

Nesse servidor apache tenho um terminal server rodando e funcionando blz e tem ADSL veloz. O firewall está off. Agora sobre criar o "Hello Word", como fazer isto em apache? indique um tuto.
Responder

Gostei + 0

27/02/2010

Rodrigo Mourão

Na verdade é so criar um nova função no sei servidor que vc ja tem ai:

function HelloWorl: String;
begin
result := 'Hello World !!!';
end;

Quando vc acessar o Servidor via Browser vai ter um link para o Descritor do Serviço: WSDL. Clique neste link e vai abrir um XML no browser. Copie a URL que te levou a esta pagina. Esta URL e o endereco que vc vai usar para consumir no cliente, seria algo como:  http://10.0.0.1/Server/Interface?wdsl


Crie uma nova aplicação Win32 no delphi. Salve e va em File -> New -> Order.  Na aba WebService selecione um WSDL Importer. Ele vai te pedir o endereço WSDL. Informe o endereço que você copiou. Avance e finalize a operação.

Isso vai gerar uma unit com os codigos necessário para consumir o serviço. La vai ter a function HelloWorld. Basta usar a function publica que tem neste unit para consumir a função.


Faça o teste para saber se o servidor vai responder.


Att,


Responder

Gostei + 0

04/03/2010

José Aguiar

No projeto SERVER tenho: .PAS do projeto; o data modulo web, uWM.pas e o data modulo com os componentes de acesso ao banco de dados, uDM.pas. Neste último arquivo na secção public declarei a função: "HelloWorld". Feito isto pelo o browser acessei o endereço: http://192.168.2.100/cgi-bin/SOAPServer.exe/SOAP/ISoapDM (imagem 01), aparece uma página com várias funções e medotos declarados, porém, não aparece a função "HelloWorld".

Ela deveria aparece para eu pegar o endereço dela?
É esse mesmo o endereço?
É neste arquivos mesmo que devo declarar a função?



Responder

Gostei + 0

04/03/2010

Rodrigo Mourão

Não é bem por ai não.

Quando criamos um Server na verdade o delphi cria um interface para publicar os os metodos e um classe concreta para implementar. Não adiante colocar os metodos no public do DM pois ele não publica dali não.

Localize a interface do Servidor, ex: Se eu der o nome da classe do servidor de Rodrigo entao ele vai criar uma interface  IRodrigo e um classe TRodrigo. Assim eu vou em IRodrigo e coloco nela a função e em TRodrigo eu Redeclaro a funcção e coloco a implementação.

No seu caso tem a interface ITeste, declare a função nela e na classe  TTeste redeclare e faça a implementação.

Com isso a função vai aparecer no Broser basta então clicar no link WSDL ao lado de ITeste e proceder como falado abaixo.

Att,
Responder

Gostei + 0

04/03/2010

José Aguiar

Fiz e agora vejo os metodos. Está dando uns erros aqui vou ve uns tuto antes de ti reportar alguma coisa sobre esse erro.
Responder

Gostei + 0

05/03/2010

Rodrigo Mourão

Blz ficarei aguardando !!

Att,
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar