доступ wsdl на Tomcat

У меня есть веб-сервис, и я развертывал его на GlassFish. Я получил доступ к его wsdl через http://localhost:10697/APIService/APIServiceService?wsdl.

Теперь я портировал ВОЕННЫЙ файл к Tomcat 6.0.24, и он развертывается. Однако я пытаюсь получить доступ к его wsdl использование http://localhost:8080/APIService/APIServiceService?wsdl, но я получаю 404 ошибки. Я попробовал различные комбинации, но ни один, кажется, не работает.

Как я могу получить доступ к wsdl файлу?

Спасибо и наилучшие пожелания,

Обновление:Вот тебе раз: web.xml:



    
        
            30
        
    
    
        index.jsp
    

Я не могу найти sun-jaxws.xml однако... Большое спасибо! Отношения

13
задан Pascal Thivent 7 March 2010 в 20:46
поделиться

1 ответ

Способ доступа к WSDL на самом деле не зависит от контейнера, он больше зависит от стека WS. WS-стек в GlassFish - это Metro (Metro = JAX-WS RI + WSIT). Вы установили / развернули Metro или JAX-WS RI на Tomcat? См. Metro на Tomcat 6.x или Запуск образцов JAX-WS с Tomcat 6.x (в вашем случае может быть достаточно JAX-WS RI) для шагов.

Обновление: Вам необходимо объявить WSServlet в web.xml (см. Развертывание конечной точки Metro ):

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <listener>
    <listener-class>
    com.sun.xml.ws.transport.http.servlet.WSServletContextListener
    </listener-class>
  </listener>
  <servlet>
    <servlet-name>WebServicePort</servlet-name>
    <servlet-class>
    com.sun.xml.ws.transport.http.servlet.WSServlet
    </servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>WebServicePort</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>
  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>
</web-app>

А затем в sun-jaxws.xml (также упакованный в WEB-INF), объявите свой интерфейс конечной точки службы (SEI):

<?xml version="1.0" encoding="UTF-8"?>
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0">
  <endpoint
  name="MyHello"
  implementation="hello.HelloImpl"
  url-pattern="/hello"
  />
</endpoints>

И вы получаете доступ к WSDL по адресу:

http://localhost:8080/<mycontext>/services/hello?wsdl
           A               B         C       D
  • A - хост и порт контейнер сервлета.
  • B - это имя файла войны.
  • C происходит из элемента url-pattern в файле web.xml.
  • D происходит от конечной основы атрибута url-pattern в файле sun-jaxws.xml.
22
ответ дан 1 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: