Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使JAX-WS对soap使用https:address/schemaLocation_Java_Scala_Wsdl_Jax Ws_Haproxy - Fatal编程技术网

Java 如何使JAX-WS对soap使用https:address/schemaLocation

Java 如何使JAX-WS对soap使用https:address/schemaLocation,java,scala,wsdl,jax-ws,haproxy,Java,Scala,Wsdl,Jax Ws,Haproxy,我正在使用Scala+JAX-WS构建一个简单的SOAP服务器,但在WSDL中自动生成的位置方面遇到了问题。服务发布方式如下: val endpoint = Endpoint(new MySoapServer()) endpoint.publish("http://10.2.2.100") 它在WSDL中创建以下元素 <service name="MyService"> <port name="MyPort" binding="tns:MyPortBinding">

我正在使用Scala+JAX-WS构建一个简单的SOAP服务器,但在WSDL中自动生成的位置方面遇到了问题。服务发布方式如下:

val endpoint = Endpoint(new MySoapServer())
endpoint.publish("http://10.2.2.100")
它在WSDL中创建以下元素

<service name="MyService">
  <port name="MyPort" binding="tns:MyPortBinding">
    <soap:address location="http://10.2.2.100"/>
  </port>
</service>

但是,服务器位于只接受https请求的代理之后,因此这些URL是无用的

如何修改schemaLocation和soap:address位置元素,以便它们读取https://10.2.2.100?


正如建议的那样,我已经尝试使用X-Forwarded-Proto,但仍然没有成功…

也许我在这里遗漏了一些东西:您不能只更改已发布端点中的地址字符串来创建所需的地址吗?或者生成一个wsdl,手工更正地址,然后在MySoapServer中引用该wsdl,或者将修改后的wsdl提供给您的客户I无法更改字符串;端点仅处理http协议。第二个建议是可行的,但我最终不得不维护一个SOAP服务,它既是对象,又是契约。目前,我认为最好的办法是咬紧牙关,使用手工编写的wsdl、scalaxb和spray,转向契约优先服务。。。
<xsd:schema>
  <xsd:import schemaLocation="http://10.2.2.100/?xsd=1"/>
</xsd:schema>