Использование веб-службы с удаленного компьютера - PullRequest
1 голос
/ 29 октября 2011

У меня есть настольное приложение, созданное с использованием jdk 6, которое публикует веб-сервисы, которые будут использоваться веб-приложением.До сих пор у меня не было проблем, пока оба приложения работают на одном физическом компьютере, я могу без проблем получить доступ к wsdl, и веб-приложение прекрасно работает с настольным приложением.Дело в том, что я не могу получить доступ к сервисам с удаленного компьютера в той же сети.Два компьютера подключены и могут взаимодействовать.Если я запускаю оба приложения на ПК1, с ПК2 я могу использовать веб-приложение через

http://PC1:8080

В настоящее время я публикую вот так:

public Publicador(){
 servicios= new Servicios();
Endpoint endpoint = Endpoint.publish("http://PC1:8686/servicios", servicios);
}

, где ПК1 - это имя ПК.С ПК1 я вижу сгенерированный wsdl по следующему адресу, и именно этот я использовал для команды wsimport:

http://PC1:8686/servicios?wsdl

Но я не могу с ПК2.

Любые идеи, почемуне виден снаружи ПК1?

1 Ответ

2 голосов
/ 30 октября 2011

Как ни странно, я нашел самый простой ответ ... Вместо публикации как

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

Я опубликовал как

Endpoint endpoint = Endpoint.publish("http://0.0.0.0: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);
}
...