Java/ApacheCXF
Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS and JAX-RS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI.
Sample
Structure:
. ├── pom.xml ├── src │ └── main │ ├── java │ │ └── com │ │ └── test │ │ ├── Calculator.java │ │ └── ICalculator.java │ └── webapp │ ├── index.html │ └── WEB-INF │ ├── applicationContext.xml │ └── web.xml └── target
pom.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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.test</groupId>
<artifactId>cxfSpringTest</artifactId>
<version>0.1</version>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle-jaxrs</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.4.1</version>
</dependency>
</dependencies>
</project>src/main/java/com/test/Calculator.java
package com.test;
public class Calculator implements ICalculator
{
public Calculator() {
System.out.println("Calculator created ");
}
public long add(long num1, long num2) {
return (num1 + num2);
}
public long subtract( long num1, long num2 ){
return num1 - num2;
}
}src/main/java/com/test/ICalculator.java
package com.test;
import javax.jws.WebService;
@WebService
public interface ICalculator {
public long add(long num1 , long num2 );
public long subtract(long num1, long num2 );
}src/main/webapp/WEB-INF/applicationContext.xml
<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"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
<bean id="calculatorService" class="com.test.Calculator" scope="singleton" />
<jaxws:endpoint implementor="#calculatorService" address="/calculator" />
</beans>src/main/webapp/WEB-INF/web.xml
<web-app>
<!-- <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param> default location for spring context -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Spring</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<!-- <init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</init-param> -->
<load-on-startup>0</load-on-startup>
</servlet>
</web-app>src/main/webapp/index.html
<html> <body>teste aaaa ....</body> </html>
