OpenShift上的Web服务

时间:2014-06-19 21:43:27

标签: web-services wsdl openshift wildfly-8

我已经在OpenShift上部署了一个Web服务,方法是使用@WebService注释一个类,使用@WebMethod注释一个公共方法。然后,我在WildFly8容器中部署了该类,服务器启动了该服务。为了能够访问WSDL文件,我必须创建一个文件" jboss-web.xml"在WEB-INF文件夹中并更改context-root。

现在我可以访问WSDL文件,但不能访问服务本身。问题出在wsdl文件的这一行:

<wsdl:service name="PlotterService">
    <wsdl:port binding="tns:PlotterServiceSoapBinding" name="PlotterPort">
      <soap:address location="http://127.8.173.1:8080/Plotter"/>
    </wsdl:port>
</wsdl:service>

地址位置设置为内部IP,应替换为我的应用程序的URL。我怎样才能做到这一点?我能够修改的唯一文件是我在开头注释的类。

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题:

默认情况下,Openshift没有设置Web服务,因此我们需要修改服务器配置。要执行此操作,请在编辑器中打开.openshift / config / standalone.xml(此文件可能已隐藏)并进行以下添加:

如果未在元素下配置webservices子系统,请复制以下内容并替换webservices子系统以启用和配置Web服务:

<subsystem xmlns="urn:jboss:domain:webservices:1.1">
    <modify-wsdl-address>true</modify-wsdl-address>
    <wsdl-host>${env.OPENSHIFT_APP_DNS}</wsdl-host>
    <wsdl-port>80</wsdl-port>
    <endpoint-config name="Standard-Endpoint-Config"/>
    <endpoint-config name="Recording-Endpoint-Config">
    <pre-handler-chain name="recording-handlers" protocol-bindings="##SOAP11_HTTP ##SOAP11_HTTP_MTOM ##SOAP12_HTTP ##SOAP12_HTTP_MTOM">
        <handler name="RecordingHandler" class="org.jboss.ws.common.invocation.RecordingServerHandler"/>
    </pre-handler-chain>
    </endpoint-config>
</subsystem>