2016-11-03 5 views
1

Я пытаюсь разработать первый веб-сервис soap jax-ws с Apache CXF и Spring boot; Я действительно новичок в использовании этих технологий. Для этого я создал проект maven для веб-приложений, предназначенный для реализации моей службы веб-уровня (зная, что уровни dao и профессия будут вызваны через зависимость, которая на самом деле представляет собой приложение java проекта maven с весенней загрузкой). и все это связано с корпоративным приложением.Ошибка страницы «Не найдено», когда тесты интеграции cxf-spring boot

Тогда я построил Apache CXF и пружинный загрузки в веб-проекта, как это, мой pom.xml:

com.xxx.dev модуля веб 0.0.1-SNAPSHOT войны $ {project.build.directory}/одобрил UTF-8

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.apache.tomcat.embed</groupId> 
       <artifactId>tomcat-embed-core</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.tomcat.embed</groupId> 
       <artifactId>tomcat-embed-websocket</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-tomcat</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-frontend-jaxws</artifactId> 
     <version>3.1.7</version> 
     <scope>provided</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-core</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-bindings-soap</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-rt-bindings-xml</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http</artifactId> 
     <version>3.1.7</version> 
     <scope>provided</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>org.apache.cxf</groupId> 
       <artifactId>cxf-core</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
    </dependency> 
    <dependency> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>mobilepayment-dao</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
     <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-bindings-xml</artifactId> 
     <version>3.1.7</version> 
     <scope>provided</scope> 
    </dependency> 
     <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-bindings-soap</artifactId> 
     <version>3.1.7</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-core</artifactId> 
     <version>3.1.7</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>javax</groupId> 
     <artifactId>javaee-web-api</artifactId> 
     <version>7.0</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 


<repositories> 
    <repository> 
     <id>mavencentral</id> 
     <name>Maven Central</name> 
     <url>https://repo1.maven.org/maven2/</url> 
     <layout>default</layout> 
    </repository> 
</repositories> 


<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
       <compilerArguments> 
        <endorseddirs>${endorsed.dir}</endorseddirs> 
       </compilerArguments> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-war-plugin</artifactId> 
      <version>2.3</version> 
      <configuration> 
       <failOnMissingWebXml>false</failOnMissingWebXml> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.6</version> 
      <executions> 
       <execution> 
        <phase>validate</phase> 
        <goals> 
         <goal>copy</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${endorsed.dir}</outputDirectory> 
         <silent>true</silent> 
         <artifactItems> 
          <artifactItem> 
           <groupId>javax</groupId> 
           <artifactId>javaee-endorsed-api</artifactId> 
           <version>7.0</version> 
           <type>jar</type> 
          </artifactItem> 
         </artifactItems> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

моя весна ботинок конфи Класс конфигурирования:

@Configuration @ImportResource ({ "Путь к классам: CXF-servlet.xml"}) общественного класса MyConfig {

@Autowired(required=true) 
private Bus bus; 

@Bean 
public ServletRegistrationBean cxfServlet() { 
    ServletRegistrationBean servlet = new ServletRegistrationBean(new CXFServlet(), "/services/*"); 
    servlet.setLoadOnStartup(1); 
    return servlet; 
} 

@Bean 
public IServicesWeb momoService() { 
    return new MomoServices(); 
} 

@Bean 
public Endpoint endpoint() { 
    EndpointImpl endpoint = new EndpointImpl(bus, momoService()); 
    endpoint.publish("/momo"); 
    return endpoint; 
} } 

Интерфейс веб-сервиса:

Публичный интерфейс @WebService IServicesWeb расширяет IMetierGestionCompte

класс реализации:

@Component @WebService MomoServices общественного класса реализует IServicesWeb {

private IMetierGestionCompte gcMetier; 

public void setGcMetier(MetierImplGestionCompte gcMetier) { 
    this.gcMetier = gcMetier; 
} 

@WebMethod 
@Override 
public void ajouterCompte() { 
    gcMetier.ajouterCompte(); 
} 

Web проект развертывается очень хорошо на Wildfly с "привет мир" в " http: // localhost: 8080/web-mobilepayment/"

Я обеспокоен тем, что когда я пытаюсь проверить свои веб-службы и адреса wsdl: «http: // localhost: 8080/web-mobilepayment/services» и «http: // localhost: 8080/web-mobilepayment/services? wsdl «ничего не появляется (нет следов интеграции cxf-spring boot), если это не сообщение« не найдено » Я не понимаю, почему мои веб-службы не работают, пожалуйста, помогите мне!

ответ

0

Ваш" привет мир»отображается на вашем веб-сервлет под web-mobilepayment. Если вы хотите получить доступ к веб-сервисы, вы должны использовать путь CXF сервлета под /services/.

вы опубликовали свой веб-сервиса с momo пути, так что вы должны вызвать http://localhost: 8080/services/momo?wsdl.

+0

Спасибо за ваш ответ. Когда я звоню http: // localhost: 8080/services/momo? Wsdl; я получаю страницу ошибок от wildfly с сообщением «404 - N от Найдена ". Я пытался найти wsdl-файл в моем пути к классам, но я не вижу его – FiokoSoft

+0

И что происходит, когда вы вызываете http: // localhost: 8080/services /? У вас должен быть хотя бы ответ от сервлета CXF. – Isukthar

+0

когда я звоню localhost: 8080/services /? ; У меня такая же страница ошибки. Я заметил, что мой проект не содержит какого-либо файла wsdl. Я не понимаю причину – FiokoSoft