Я создал несколько веб-сервисов, использующих подходы CXF и code-firts.Вот мои настройки и код:
web.xml:
...
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/ws/*</url-pattern>
</servlet-mapping>
applicationContext.xml:
<jaxws:endpoint implementor="#testService" address="/test" />
TestService.java:
@Service
@WebService
public class TestService {
@WebMethod
public String random() {
return "random=" + Math.random();
}
}
Таким образом, запрос к http://localhost:8080/myWebApp/ws/test?wsdl получает красивый WSDL, который содержит:
<wsdl:service name="TestServiceService">
<wsdl:port binding="tns:TestServiceServiceSoapBinding" name="TestServicePort">
<soap:address location="http://localhost:8080/myWebApp/ws/test"/>
</wsdl:port>
</wsdl:service>
Проблема в том, что я хочу другое местоположение в зависимости от объекта HttpServletRequest.Итак, мне нужно каким-то образом переписать код генерации WSDL.Я искал, где этот контент создан, но безуспешно.
Как лучше всего решить эту проблему?