2014-07-08 5 views
1

JADE 에이전트를 사용하여 특정 작업을 수행하는 시스템을 구축 중입니다. 하나의 시나리오에서 에이전트 중 하나는 모바일 앱과 통신하기 위해 웹 서비스를 호스팅해야합니다.JADE - webservice (wsdl) 호스팅 에이전트

불행히도 에이전트가 여는 포트는 시스템에서 볼 수 없습니다. 나는 로컬 호스트의 포트 9191을 열려면 코드를 사용하고 (로컬 호스트되지 않은)

Endpoint.publish("http://" + Inet4Address.getLocalHost().getHostAddress()":9191/QrReceiver", qr); 

이에는 getLocalHost() 루틴 반환 127.0.1.1,하지만 난 127.0.0.1로는 IP를 강제로 할 때, 나는 액세스 할 수 있습니다

http://localhost:9191/QrReceiver?wsdl 

에 wsdl 파일이 있지만 다른 장치를 사용하여이 포트의 내용에 액세스 할 수 없습니다. 또한 portscanner 유틸리티는이 포트를 찾지 않지만 장치 간 통신을 위해 JADE 에이전트 (및 컨테이너)가 사용하는 포트 1099 및 7778을 찾습니다.

어떻게 JADE 에이전트를 사용하여 wsdl 기반 웹 서비스를 호스팅 할 수 있습니까? 사전에

덕분에, 마틴

답변

1

나는 이전에 같은 문제가 있었다. 이것은 두 가지 때문에 발생할 수 있습니다. 당신의 localhost 주소를 반환

  1. Inet4Address.getLocalHost().getHostAddress() 방법. 예 : 127.0.0.1 서비스가 로컬에서 호스팅되며 로컬 호스트에서만 볼 수 있습니다. 네트워크를 통해 액세스 할 수 없습니다.

    192.168.1.1과 같은 정적 IP 주소를 사용하는 경우. 그런 다음 로컬 IP를 동적으로 가져 오지 않고 서비스 엔드 포인트에 Endpoint.publish("http://192.168.1.1:9191/QrReceiver", qr);으로 지정하십시오. 그러면 네트워크를 통해 액세스 할 수 있습니다.

  2. 아마도 방화벽이 포트 9191을 차단할 수 있습니다. 따라서 포트가 자유롭고 연결에 열려 있는지 확인하십시오.