2014-09-17 6 views
3

Недавно я переписал приложение веб-служб для использования CXF вместо Axis. Коммутатор был достаточно прост, но у меня возникли проблемы с развертыванием webapp. Ранее с помощью Axis вы могли перейти на страницу, обслуживаемую Tomcat, которая будет перечислять все службы Axis; что-то похожее на http://localhost:8080/axis2/services/listServices. И чтобы просмотреть WSDL службы, я бы перешел на http://localhost:8080/axis2/services/Service?wsdl.Развертывание веб-служб CXF SOAP для Apache Tomcat

После перезаписи служб в CXF я обнаружил, что не знаю, как развернуть и настроить приложение. Я следил за базовой установкой CXF, где файл web.xml моего приложения импортирует конфигурационный файл Spring, beans.xml. Я могу полностью справиться с этим и развернуть его в Tomcat, где он взрывается просто отлично, и никаких ошибок не происходит, но я не могу понять, как даже просматривать хост, чтобы увидеть список развернутых веб-сервисов.

Могу ли я получить помощь и пояснить это? Я хотел бы понять, как настроить CXF, чтобы я знал, какие URL использовать, чтобы перечислять службы и видеть их соответствующие WSDL. Не стесняйтесь объяснять эту порцию, как будто мне было пять лет; Я прочный программист, но развертывание и настройка не являются самыми сильными областями знаний.

Одна вещь, которую я заметил, пытаясь понять, что файл beans.xml ссылается на импорт classpath:META-INF/cxf/cxf.xml. Я понятия не имею, что это за файл или где он находится, но мое предположение было бы в том, что это, вероятно, необходимо, и что я должен, вероятно, понять его роль. Может ли кто-то подумать об этом? Есть ли у Tomcat web.xml что-то общее с этой конфигурацией?

Если я могу предоставить дополнительную информацию или конфигурацию, чтобы помочь с этим сообщением, дайте мне знать!

Вот web.xml моего приложения:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
    version="3.0"> 
    <context-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value>WEB-INF/beans.xml</param-value> 
    </context-param> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 
    <servlet> 
     <display-name>CXF Servlet</display-name> 
     <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>/services/*</url-pattern> 
    </servlet-mapping> 
    <mime-mapping> 
     <extension>inc</extension> 
     <mime-type>text/plain</mime-type> 
    </mime-mapping> 
</web-app> 

А вот мой beans.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans 
    xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:jaxws="http://cxf.apache.org/jaxws" 
    xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> 

    <import resource="classpath:META-INF/cxf/cxf.xml" /> 

    <jaxws:endpoint 
     id="accountService" 
     implementor="com.company.ws.data.services.AccountService" 
     address="/AccountService" /> 

    <jaxws:endpoint 
     id="loggingService" 
     implementor="com.company.ws.data.services.LoggingService" 
     address="/LoggingService" /> 

    <jaxws:endpoint 
     id="searchService" 
     implementor="com.company.ws.data.services.SearchService" 
     address="/SearchService" /> 

    <jaxws:endpoint 
     id="validationService" 
     implementor="com.company.ws.data.services.ValidationService" 
     address="/ValidationService" /> 
</beans> 

ответ

5

Вы можете получить доступ ко всем развернутые WebServices в http://localhost:8080/{YourwebApp}/services Say предположим, что ваш WebApplication является webapp1 то http://localhost:8080/webapp1/services

+0

так просто. Благодарю. – liltitus27

Смежные вопросы