2012-12-05 6 views
8

Sono nuovo a qualsiasi framework aperto (sono un ingegnere di soluzioni basato su java) e sto provando a creare un progetto cxf.dove trovare cxf/cxf.xml, cxf-extension-soap.xml, cxf-servlet.xml

ho capito che ho bisogno di avere applicationContext.xml di file e contenuti qualcosa come

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" 
xmlns:cxf="http://cxf.apache.org/core" xmlns:jaxws="http://cxf.apache.org/jaxws" 
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration" 
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd 
     http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd 
     http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd 
     http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd"> 

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

<http-conf:conduit name="*.http-conduit"> 
    <http-conf:client ReceiveTimeout=“300000“ AllowChunking="false"/> 
</http-conf:conduit> 

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

<cxf:bus> 
    <cxf:features> 
     <cxf:logging /> 
    </cxf:features> 
</cxf:bus> 

</beans> 

in esso.

Ora mi chiedo dove posso scaricare i file
cxf/cxf.xml, cxf-extension-soap.xml, cxf-servlet.xml.

O che ho creato un progetto Web dinamico è sbagliato? Qualche altro tipo di progetto genera automaticamente quei file?

+0

O qualsiasi guida per l'impostazione di base ambiente CFX? ragazzi? –

risposta

3

Ciascuno di questi file può essere trovato nei barattoli CXF che è necessario includere nel progetto.

cxf-servlet.xml

cxf.xml

cxf-extension-soap.xml

Ho sempre trovato il modo più veloce per ottenere un progetto CXF installato e funzionante è quello di utilizzare un Maven Archetipo.

+3

Ci sono molti barattoli CXF. L'utente desiderava sapere quale. –

7

So che questo è un vecchio post, ma questo potrebbe aiutare gli altri

cxf-extension-soap.xml è in cxf-rt-binding-soap vaso, ma avrete bisogno di cxf-rt-frontend-jaxws

cxf-servlet.xml è in cxf-rt-transports-http vaso

cxf.xml è in cxf-rt-core vaso (che è una dipendenza transitiva di quelli precedenti)

Pertanto, se si include cxf-rt-frontend-jaxws e cxf-rt-transports-http come dipendenze (con Maven, ad esempio) il tuo progetto dovrebbe funzionare correttamente.

2

O che ho creato un progetto Web dinamico è sbagliato? Qualche altro tipo di progetto genera automaticamente quei file?

Il file di guerra si crea generalmente solo avere un file manifesto sotto META-INF directory chiamata MANIFEST.MF. Questo file contiene le informazioni sulla meta della build. Per me ho

Manifest-Version: 1.0 
Gradle-Version: 2.0-rc-2 
Created-By: 1.6.0_31 (Sun Microsystems Inc.) 
Version: 10.51 
Build: dev 
Build-Timestamp: 10/01/2015 12:53:32 
Build-User: athakur 
Build-Host: ATHAKUR 

Questa directory viene creata automaticamente quando si crea il progetto per creare un vaso o una guerra. Può avere anche altri attributi come la classe principale [Refer this Q].

Ora venendo alla tua domanda. Molte librerie inseriscono i loro file di configurazione nella corrispondente cartella META-INF. Questo è solo un altro esempio e i vasi che stai cercando sono i barattoli CXF.

enter image description here enter image description here

Per Gradle è possibile aggiungere seguente nel file di build.gradle

compile("org.apache.cxf:cxf-rt-frontend-jaxrs:3.1.3") 
compile("org.apache.cxf:cxf-rt-frontend-jaxws:3.1.3") 
compile("org.apache.cxf:cxf-rt-transports-http:3.1.3") 
0

Web.xml può essere come questo

CXF

<context-param> 
    <param-name>contextConfigLocation</param-name> 
    <param-value>classpath:ApplicationContext-cxf.xml</param-value> 
</context-param> 

<listener> 
    <listener-class> 
     org.springframework.web.context.ContextLoaderListener 
    </listener-class> 
</listener> 

<servlet> 
    <servlet-name>CXFServlet</servlet-name> 
    <display-name>CXF Servlet</display-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>/*</url-pattern> 
</servlet-mapping> 

seguito è un applicationContext.xml lavoro

<?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" xmlns:tx="http://www.springframework.org/schema/tx" 
    xmlns:cxf="http://cxf.apache.org/core" xmlns:task="http://www.springframework.org/schema/task" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd 
    http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.1.xsd"> 


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

    <task:annotation-driven /> 

    <context:component-scan base-package="com.smoothexample"> 
     <context:include-filter type="annotation" 
      expression="org.springframework.stereotype.Service" /> 
     <context:include-filter type="annotation" 
      expression="org.springframework.stereotype.Component" /> 
     <context:include-filter type="annotation" 
      expression="org.springframework.stereotype.Repository" /> 
    </context:component-scan> 

    <context:annotation-config /> 
    <context:component-scan base-package="com.smoothexample" /> 


    <bean 
     class="org.springframework.context.annotation.CommonAnnotationBeanPostProcessor" /> 


<bean id="addressSoapService" class="com.smoothexample.cxf.soap.ws.impl.AddressSoapServiceImpl" /> 

    <jaxws:endpoint id="addressEndpointId" 
     implementorClass="com.smoothexample.cxf.soap.ws.impl.AddressSoapServiceImpl" 
     implementor="#addressSoapService" address="/addressSoapService"> 

    </jaxws:endpoint> 

</beans> 

Tutte le dipendenze Maven sono definiti come segue, che comprende vasi per cxf/cxf.xml, CXF-estensione-soap.xml, cxf-servlet.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.lal.pro</groupId> 
    <artifactId>apache-cxf-soap-ws</artifactId> 
    <packaging>war</packaging> 
    <version>0.0.1-SNAPSHOT</version> 
    <name>apache-cxf-soap-ws Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <cxf.version>2.5.0</cxf.version> 

     <org.springframework.version>4.1.1.RELEASE</org.springframework.version> 

     <ch.qos.logback.version>1.1.3</ch.qos.logback.version> 
     <org.sl4j.version>1.7.12</org.sl4j.version> 
     <spring.ws.version>2.2.4.RELEASE</spring.ws.version> 
    </properties> 
    <dependencies> 

     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-frontend-jaxws</artifactId> 
      <version>${cxf.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-transports-http</artifactId> 
      <version>${cxf.version}</version> 
     </dependency> 


     <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.1</version> 
     </dependency> 

    </dependencies> 
    <build> 
     <finalName>apache-cxf-soap-ws</finalName> 
    </build> 
</project> 

Si prega di trovare maggiori dettagli a http://www.smoothexample.com/webservices/apache_cxf_soap_web_services.html