Webサービスを公開するアプリケーションがあり、それをDockerコンテナーにデプロイしようとしましたが、機能しません。javax.jwsの@WebServiceと@WebMethodを使用してサービスを宣言し、
Endpoint.publish("http://localhost:8081/doctorservice",
new DoctorServiceImplementation());
Dockerfileの内容は次のとおりです。
FROM openjdk:8
ADD target/service-publisher.jar service-publisher.jar
EXPOSE 8081
ENTRYPOINT ["java","-jar","service-publisher.jar"]
Dockerイメージを作成しました
docker build -f Dockerfile -t webservice .
そしてそれを実行します
docker run --name webservice -p 8081:8081 -d webservice
コンテナーは実行され、ポートは公開されますが、ブラウザーからhttp:// localhost:8081 / doctorservice?wsdlにアクセスしようとすると、機能しません。
私は自分の問題の解決策を見つけました:ローカルホストではなく0.0.0.0にサービスを公開する必要があったので、置き換えました
Endpoint.publish("http://localhost:8081/doctorservice",
new DoctorServiceImplementation());
と
Endpoint.publish("http://0.0.0.0:8081/doctorservice",
new DoctorServiceImplementation());
Dockerコンテナ内で実行されているアプリの場合
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加