Apache CXF实战之一 Hello World Web Service

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

本文链接:http://blog.csdn.net/kongxx/article/details/7525476

Apache的CXF现在几乎成了Java领域构建Web Service的首选类库,并且它也确实简单易用,下面就通过几篇系列文章做一下简单介绍。

当然首先想到的当然还是那个Hello World示例。这个系列文章中用到的例子都是基于Maven构建的工程,下面是我的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/maven-v4_0_0.xsd">    <modelVersion>4.0.0</modelVersion>    <groupId>com.googlecode.garbagecan.cxfstudy</groupId>    <artifactId>cxfstudy</artifactId>    <packaging>war</packaging>    <version>1.0-SNAPSHOT</version>    <name>cxfstudy Maven Webapp</name>    <url>http://maven.apache.org</url>        <properties>        <cxf.version>2.2.7</cxf.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>org.apache.cxf</groupId>            <artifactId>cxf-rt-transports-http-jetty</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-ws-security</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-rt-ws-policy</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>org.apache.cxf</groupId>            <artifactId>cxf-bundle-jaxrs</artifactId>            <version>${cxf.version}</version>        </dependency>        <dependency>            <groupId>javax.ws.rs</groupId>            <artifactId>jsr311-api</artifactId>            <version>1.1.1</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-api</artifactId>            <version>1.5.8</version>        </dependency>        <dependency>            <groupId>org.slf4j</groupId>            <artifactId>slf4j-jdk14</artifactId>            <version>1.5.8</version>        </dependency>        <dependency>            <groupId>commons-httpclient</groupId>            <artifactId>commons-httpclient</artifactId>            <version>3.0</version>        </dependency>        <dependency>            <groupId>commons-io</groupId>            <artifactId>commons-io</artifactId>            <version>2.3</version>        </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.8.1</version>            <scope>test</scope>        </dependency>    </dependencies>        <build>        <finalName>cxfstudy</finalName>        <resources>            <resource>                <directory>src/main/resources</directory>            </resource>            <resource>                <directory>src/main/java</directory>                <includes>                    <include>**</include>                </includes>                <excludes>                    <exclude>**/*.java</exclude>                </excludes>            </resource>        </resources>        <plugins>            <plugin>                <groupId>org.mortbay.jetty</groupId>                <artifactId>maven-jetty-plugin</artifactId>                <configuration>                    <contextPath>/</contextPath>                    <connectors>                        <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">                            <port>9000</port>                        </connector>                    </connectors>                </configuration>            </plugin>            <plugin>                <groupId>org.apache.maven.plugins</groupId>                <artifactId>maven-compiler-plugin</artifactId>                <configuration>                    <source>1.5</source>                    <target>1.5</target>                </configuration>            </plugin>        </plugins>    </build></project>
下面来看看HelloWorld的具体例子。

1.创建HelloWorld 接口类

package com.googlecode.garbagecan.cxfstudy.helloworld;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;@WebServicepublic interface HelloWorld {    @WebMethod    @WebResult String sayHi(@WebParam String text);}
2.创建HelloWorld实现类 

package com.googlecode.garbagecan.cxfstudy.helloworld;public class HelloWorldImpl implements HelloWorld {    public String sayHi(String name) {        String msg = "Hello " + name + "!";        return msg;    }}
3.创建Server端测试类

package com.googlecode.garbagecan.cxfstudy.helloworld;import org.apache.cxf.jaxws.JaxWsServerFactoryBean;// http://localhost:9000/HelloWorld?wsdlpublic class Server {    public static void main(String[] args) throws Exception {        JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();        factory.setServiceClass(HelloWorldImpl.class);                factory.setAddress("http://localhost:9000/ws/HelloWorld");        factory.create();        System.out.println("Server start...");        Thread.sleep(60 * 1000);        System.out.println("Server exit...");        System.exit(0);    }}
4.创建Client端测试类

package com.googlecode.garbagecan.cxfstudy.helloworld;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;public class Client {    public static void main(String[] args) {        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();        factory.setServiceClass(HelloWorld.class);        factory.setAddress("http://localhost:9000/ws/HelloWorld");        HelloWorld helloworld = (HelloWorld) factory.create();        System.out.println(helloworld.sayHi("kongxx"));        System.exit(0);    }}
5.测试

首先运行Server类来启动Web Service服务,然后访问http://localhost:9000/ws/HelloWorld?wsdl地址来确定web service启动正确。

运行Client测试类,会在命令行输出Hello kongxx!的message。







           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

这里写图片描述

猜你喜欢

转载自blog.csdn.net/mm2zzyzzp/article/details/83934640