当前位置: 代码迷 >> Web前端 >> eclipse3.3+CXF2.1+STP配置webservice开发环境(附件为新手视频上载)
  详细解决方案

eclipse3.3+CXF2.1+STP配置webservice开发环境(附件为新手视频上载)

热度:514   发布时间:2012-11-14 10:12:18.0
eclipse3.3+CXF2.1+STP配置webservice开发环境(附件为新手视频下载)

我这个人向来比较懒,没有动手写点东西的习惯,呵呵
最近几天由于需要,在学习webservice,用惯了eclipse,也想搭建个eclipse下开发web service的平台,上网搜索了下,文章还不少,非常详细,但是配置总是出错误,最大的问题是不能生成wsdl.无奈之下,自己动手。参考官方的文档,下面开始。
请尊重他人打字的辛劳,转载必须注明出处,并使用链接方式引用
1、tools
工欲善其事,当然是先找工具了


eclipse3.3
http://download.actuatechina.com/eclipse/eclipse/downloads/drops/R-3.3-200706251500/eclipse-SDK-3.3-win32.zip

STP all_in_one(以下简称stp)
这里推荐安装all_in_one(此安装文件已经包含必要的插件)
http://download.eclipse.org/stp/downloads/


相关的Pre-requisites SOA runtime
Apache CXF (一定要是2.1版本的) (必要)
http://people.apache.org/repo/m2-snapshot-repository/org/apache/cxf/apache-cxf/

?

如果在生成WSDL时,出现找不到main的情况,是由于没有下载到正确的cxf运行环境

?


Apache Tuscany SCA Java (下载最新的apache-tuscany-sca-1.0-incubating.zip? )?
http://archive.apache.org/dist/incubator/tuscany/java/sca/1.0-incubating/



需要的tool就齐了


2、开始安装
eclipse 3.3安装非常简单,指定目录 解压缩就可以
STP all in one 是eclipse的插件,推荐采用link方式安装,具体请搜索网络,一大堆
简单说明下安装:
1)解压缩stp all in one,注意插件内文件名较长,如果解压缩的目录过长,如D:\My Documents\第四版本资料\使用links方式安装Eclipse插件\Struts2+Spring+Hibernate In Action(这样的目录是不行的),那么部分插件不能被解压缩,目录层次要少。将 stp解压缩到e:\stp


2)加入eclipse在e:\eclipse安装,在e:\eclipse下建立目录links,在links目录下建立文件AllInOne.link。用记事本打开,输入内容:path=e:\\stp
这里的e:\\stp 就是stp all in one的安装目录


3)用命令行方式运行eclipse(直接打开eclipse也可以,某些情况下,可能出现看不到新安装的插件)
cmd
e:\eclipse\eclipse -clean
启动eclipse


4) 打开eclipse后,在菜单栏,windows-->preference-->soa tools 如下图,说明插件安装成功


3、配置
1)把CXF2.1 sca1.0解压缩,目录分别为
d:\cxf2.1,d:\sca1.0
2) 选择上图中 Installed Runtimes
如下图

环境配置成功
4、开始测试环境是否能够开发webservice并简单演示自动生成wsdl的过程
1)新建立java project
project name: demo

/**
* 创建接口,将业务方法暴露给远程调用者
* @author 赵永亮
*
*/
package org.zhaoyl.webservice;

public interface Hello
{
public String sayHello();

}
2) 右键项目名称(demo),选择JAX-WX Tools -->enable JAX-WX-->java first programing mode
如下图
选择运行cxf环境(在配置里面已经安装了)
下一步
如图
选择Hello接口
完成
此时Hello.java内容如下:
package org.zhaoyl.webservice;

import javax.jws.WebService;

/**
* 创建接口,将业务方法暴露给远程调用者
* @author 赵永亮
*
*/
@WebService(name="Hello", targetNamespace="http://webservice.zhaoyl.org/")
public interface Hello {
public String sayHello();

}



3)
在eclipse中调出 Annotation properties视图,增加并设置@WebService注释
在Hello.java文件中选择@webservice部分(鼠标定位在该部分就可以了)->在下面的Annotation Properties中选中javax.jws.soap.SOAPBinding,将缺省的false修改成true;将SOAPBinding展开,将其中的Style属性从RPC修改成DOCUMENT(注意是大写)。
此时Hello.java内容如下:
package org.zhaoyl.webservice;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;

/**
* 创建接口,将业务方法暴露给远程调用者
* @author 赵永亮
*
*/
@SOAPBinding(use=SOAPBinding.Use.LITERAL, style=SOAPBinding.Style.DOCUMENT)
@WebService(name="Hello", targetNamespace="http://webservice.zhaoyl.org/")
public interface Hello {
public String sayHello();

}

4)
在outline视图,选择sayHello(),右键,JAX-WX tools--〉create web method
此时,Hello.java内容如下:

package org.zhaoyl.webservice;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.ws.RequestWrapper;
import javax.xml.ws.ResponseWrapper;
import javax.jws.WebMethod;

/**
* 创建接口,将业务方法暴露给远程调用者
* @author 赵永亮
*
*/
@SOAPBinding(use=SOAPBinding.Use.LITERAL, style=SOAPBinding.Style.DOCUMENT)
@WebService(name="Hello", targetNamespace="http://webservice.zhaoyl.org/")
public interface Hello {
@WebMethod(operationName="sayHello", exclude=false)
@ResponseWrapper(className="org.zhaoyl.webservice.SayHelloResponse", localName="sayHelloResponse", targetNamespace="http://webservice.zhaoyl.org/")
@RequestWrapper(className="org.zhaoyl.webservice.SayHello", localName="sayHello", targetNamespace="http://webservice.zhaoyl.org/")
public String sayHello();

}
5)
右键项目名称(demo),JAX-WX Tools -->Generate wsdl
呵呵,自动生成了wsdl
目录结构图如下:




总结:此时,能够正确自动生成WSDL文件了,至于如何调用等等问题,还有待于学习
个人平时很少写作,以至于文字错误较多,语句不通顺之处,请多体谅
太郁闷了 ,怎么不能贴图,只好把QQ仍到上面了:252574345

?

1 楼 zhaoyl 2008-04-17  
自己先顶下,太郁闷了,不会帖图
2 楼 smartzxy 2008-05-22  
我完全按照您的步骤配置,依旧没能生成wsdl文件~(我的环境:Fedora8 64bit,其他都一样)
3 楼 banner 2008-07-11  
我大概2、3月时也尝试着配过一次,也总是无法生成wsdl,后来放弃了。现在又开始看web service了,用eclipse jee总是不能成功创建web service,总不能生成一些文件,无奈之下,只好手写一些东西了,不过这不是长久之计,开发效率慢
4 楼 zhaoyl 2008-07-12  
我 认为 出现了一些问题还是 要及时去 解决,就像你说的 ,不能生成服务器端代码的 原因在哪里 ,应该找出来
5 楼 jackymin 2008-09-18  
你好,我试验了下用CXF2.1.3,但是没有生成wsdl和java代码。报错
could not find the main class,the program will exit,不知道你们有遇到过没?有解决办法的话请留言,谢谢
6 楼 zhaoyl 2008-09-22  
请仔细检查是否正确配置了运行环境,并确定是否正确描述了要发布的接口,代码方面详细请参考视频
  相关解决方案