2011-10-29 8 views
1

私は、Webアプリケーションによって消費されるWebサービスを公開するjdk 6で構築されたデスクトップアプリケーションを持っています。これまでのところ、両方のアプリケーションが同じ物理コンピュータで実行されている間は問題はありませんでした。問題なくwsdlにアクセスでき、Webアプリケーションはデスクトップアプリケーションで正常に動作します。つまり、同じネットワーク内のリモートコンピュータからサービスにアクセスすることはできません。 2台のPCは接続され、相互作用することができます。私はPC1に両方のアプリケーションを実行する場合は、PC2から私は現在、このように公開していますリモートコンピュータからWebサービスを使用する

http://PC1:8080 

てWebアプリケーションを使用することができます。

PC1は、PCの名前です
public Publicador(){ 
servicios= new Servicios(); 
Endpoint endpoint = Endpoint.publish("http://PC1:8686/servicios", servicios); 
} 

。 PC1から、私は以下のアドレスから生成されたWSDLを見ることができ、そしてそれは私がwsimportのコマンドのために使用されるものです:

http://PC1:8686/servicios?wsdl 

しかし、私はPC2からcannnot。

PC1の外から見えない理由はありますか?

+0

ファイアウォール?ウェブブラウザでPC 2からそのURLを参照するとどうなりますか? –

+0

両方のコンピュータからのファイアウォールがダウンしています。問題となる考え。変わったことは、私はPC1で実行されているwebappにアクセスできますが、pc1の外で実行するwsdlにはアクセスできません。 pc2からwsdlにアクセスしようとすると、私はfirefoxを "conectエラーにできません"というメッセージが表示される – santiagollo

+0

WSDLを公開している実装は何ですか? Tomcat? –

答えて

2

それが見えるかもしれませとして信じられないほど、私は

...私は

Endpoint endpoint = Endpoint.publish("http://0.0.0.0:8686/servicios", servicios); 

として公開し、それはそれを解決し

Endpoint endpoint = Endpoint.publish("http://PC1:8686/servicios", servicios); 

として代わりに出版の...答えの最も簡単なを発見しました

別の解決策は、ファイルから公開するアドレスを取得することでした。なぜそれがハードコーディングされなかったのかわからない...私はこれのようにそれをやった:

Properties prop = new Properties(); 
InputStream is = null; 
String currenDir = System.getProperty("user.dir"); 
String nombreArchivo = currenDir + File.separator + "ubicacion.PROPERTIES"; 
try { 
is=new FileInputStream(nombreArchivo); 
prop.load(is); 
} catch(IOException ioe) {} 

String pc = prop.getProperty("ServiciosWeb");  
Endpoint endpoint = Endpoint.publish(pc, servicios); 
} 
関連する問題