解决IWAB0489E Error when deploying Web service to Axis runtime

eclipse europa自带web工具。我们可以使他生成动态web程序。但是在默认情况下,生成的动态默认程序是不包含web service相关依赖的。因此

              在生成工程的时候,在Projet Facets对话框步骤勾选Axis2 Web Service 选项

即可生成具有web service相关依赖的工程。

 

当生成后,也许会使自己有些失望,“怎么会报错呢?”。如果你真的遇到了,那你就又可以长一些知识了。因为eclipse并没有带Axis的本身。因此我们需要下载axis,并使eclipse的webservice设置与之联系。我下载的是axis2   1.4版本。解压到自己希望的目录,然后

               菜单“Windows”---->“Preferences...”--->产开左边 “Web Service”节点--->选择“Axis2 Preferences”项目--->在右侧“Axis2 Runtime”标签下设定Axis2 Runtime Location

在上面设置我们刚下载并解压的axis2   1.4就可以了。

 

经过上面的步骤,我们便知道怎样成功的建立一个带有web service相关依赖的动态web项目。等我们建立了一个项目以后,我们就可以试着写一个java类,并把它发布成web service。如写类如下:

Java代码
  1. package  test;  
  2.   
  3. public   class  HelloWorld {  
  4.   
  5.     public  String hello(String name) {  
  6.         return  name +  "说:你好世界" ;  
  7.     }  
  8.       
  9. }  
Java代码 复制代码  收藏代码
  1. package test;   
  2.   
  3. public class HelloWorld {   
  4.   
  5.     public String hello(String name) {   
  6.         return name + "说:你好世界";   
  7.     }   
  8.        
  9. }  
package test;

public class HelloWorld {

	public String hello(String name) {
		return name + "说:你好世界";
	}
	
}

 那么到底怎么发布他呢。如果你看了axis的相关文档,上面介绍了n多方式。如果没有耐心的话,肯定会看糊涂的。还好我们用工具就是为了方便。不妨右键单击刚才写的HelloWorld类试试(在Java EE试图下)。你可以找到“Web Services”选项并在它的字菜单中,点选Create Web service。好了,按照对话框向导和你的意图,你也许会认为会很顺利的完成。但结果可能不是那样的。你极有可能遇到一个代号为IWAB0489E的异常。具体如下

 

IWAB0489E Error when deploying Web service to Axis runtime
  axis-admin failed with  {http://schemas.xmlsoap.org/soap/envelope/}Client The service cannot be found for the endpoint reference (EPR) http://localhost:8080/WebServiceTest/services/AdminService

 

不要气馁,我也遇到了,而且在网上查找资料的时候,发现很多老外也遇到了。大概是这个工具国人用的不多,资料鲜有。而且一些境外的英文技术论坛上说的也是乱七八糟的。我也不在这多说,直接说解决办法

                  在生成webservice的第一个对话框中点选Confingration下面的链接--->在弹出的对话框中点选“Apache Axis2”--->点ok回到远对话框后勾选“Publish the Web service”,“Monitor the Web services”选项

好了,现在知道出现异常的原因了吧,就是eclipse默认按照axis的规则,而不是axis2的规则生成。而我们用的是axis2。第二个箭头后面的是让你在生成web service后就直接发布了,并且可以使我们的监视程序监测到它。

 

好了,基本上按照eclipse的向导一直往下走,也就不会出什么问题了。当发布完了,相信我们的服务器是打开着的,这时可以在浏览器里试试我们的发布是否成功,

登陆(注意WebsServiceTest是我建的动态web工程名字

http://localhost:8080/WebServiceTest/services/listServices 看是否监测程序已经监测到了我们刚写的Hello World web 服务。

登陆

http://localhost:8080/WebServiceTest/services/HelloWorld?wsdl 看生成的wsdl内容。

登陆

http://localhost:8080/WebServiceTest/services/HelloWorld/hello?name=zhangyt 看我们的web service返回的信息。这时会开到内容如下

Xml代码
  1. < ns:helloResponse   xmlns:ns = "http://test" >   
  2. < ns:return > zhangyt说:你好世界 </ ns:return >    
  3. </ ns:helloResponse >   
Xml代码 复制代码  收藏代码
  1. <ns:helloResponse xmlns:ns="http://test">  
  2. <ns:return>zhangyt说:你好世界</ns:return>    
  3. </ns:helloResponse>  

这是很激动人心的,因为这个测试发现我们的web service在工作了,而且返回了我们想要的东西。

 

 

好了,我的这个叙述其实可以说只是突出了应用eclipse写web服务的入门注意点。其实就是说工具怎么使用。会用工具写web service,并不一定真正理解之。相信很多人如果一离开eclipse,将有很多事情不能做。所以,有些功课是要在应用以外的时间做好的。要知其所以然,就要参阅这方面的相关资料了。

 

转自:http://yangzb.iteye.com/blog/327016

### Tomcat部署Web应用时出现错误的解决方案 在Tomcat中部署Web应用程序时,可能会遇到各种错误。以下是一些常见的原因及其解决方法: #### 1. 配置文件问题 Tomcat的配置文件位于`conf`子目录下[^1]。如果`web.xml`文件中存在不正确的配置,可能导致部署失败[^2]。建议检查并修正以下内容: - 确保`web.xml`中的`servlet`和`servlet-mapping`元素正确无误。 - 如果怀疑这些元素导致问题,可以尝试临时删除它们以测试是否能成功部署。 #### 2. 类路径问题 某些情况下,类路径中的JAR文件可能缺失或版本不兼容。例如,`jersey-server-1.16.jar`中应包含`com/sun/jersey/spi/container/servlet/ServletContainer.class`文件[^2]。如果该类不存在,可能导致部署失败。建议执行以下操作: - 检查`WEB-INF/lib`目录下的所有JAR文件,确保其完整性。 - 根据项目需求更新相关依赖库。 #### 3. WAR文件结构问题 WAR文件的结构必须符合Java EE规范。以下是关键点: - `WEB-INF`目录必须存在,并包含`web.xml`文件。 - 所有资源文件应放置在正确的位置,例如静态资源应在根目录下,而类文件应在`WEB-INF/classes`目录下。 如果WAR文件结构不符合规范,Tomcat将无法正确解析并部署应用程序。 #### 4. 权限问题 在某些操作系统(如Linux或Mac)上,文件权限不足可能导致部署失败。确保以下条件满足: - Tomcat安装目录及其子目录具有适当的读写权限。 - WAR文件及其解压后的目录对Tomcat进程可见且可访问。 #### 5. 日志分析 当部署失败时,Tomcat会生成详细的日志信息,通常位于`logs/catalina.out`文件中[^1]。通过分析日志,可以定位具体的错误原因。例如: - 如果日志中提到`ClassNotFoundException`,则可能是类路径问题。 - 如果日志中提到`IOException`,则可能是文件权限或磁盘空间不足。 #### 示例代码:验证WAR文件结构 以下是一个简单的脚本,用于检查WAR文件的基本结构是否正确: ```bash #!/bin/bash WAR_FILE="your-application.war" TEMP_DIR="/tmp/war-check" # 解压WAR文件 unzip -q "$WAR_FILE" -d "$TEMP_DIR" # 检查关键目录和文件是否存在 if [ ! -d "$TEMP_DIR/WEB-INF" ]; then echo "Error: WEB-INF directory is missing." fi if [ ! -f "$TEMP_DIR/WEB-INF/web.xml" ]; then echo "Error: web.xml file is missing." fi # 清理临时文件 rm -rf "$TEMP_DIR" ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值