WebService&Axis2&Tomcat6&Hadoop/HDFS搭建服务时遇到的一些问题

3790阅读 1评论2013-04-03 slp195
分类:云计算

http://blog.csdn.net/xiaochunyong/article/details/7764683
----------------------------------------------------
java.lang.NoClassDefFoundError: org/apache/commons/configuration/Configuration
解决方案:commons-configuration-1.6.jar 缺少了这个包
----------------------------------------------------
在J2ee中开发webservice,会将引用的jar包中的部分类导入本类中,再用gernal code
生成对应客户端调用代码的时候,部分导入的类包会被重命名,比如java.io.Exception
会被改为java.io.asd.Exception,这样的作法是防止与原有的jar包中的类重名。
----------------------------------------------------------------------
重新配置eclipse,使用改过的hadoop-eclipse-plugin-0.20.205.0.jar替换原hadoop-eclipse-plugin-0.20.205.0,配置dfs server和master正确,但访问hdfs时出错,错误如下:
An internal error occurred during: "Connecting to DFS MapReduceLocation".
org/apache/commons/configuration/Configuration

这种情况下的解决办法很简单:
1.关闭eclipse,删除plugins目录下的hadoop-eclipse-plugin-0.20.205.0.jar,
2.启动eclipse,再关闭eclipse,将改好的hadoop-eclipse-plugin-0.20.205.0.jar放入plugins目录,再启动即可
-------------------------
WSDL反向生成java代码的时候出现有的java代码是在java.开头的保重,导致提示错误信息为:
prohibited package name java.io.xsd

原因:
java运行机制内部有如下限制:
 if ((name != null) && name.startsWith("java.")) {  
        throw new SecurityException("Prohibited package name: " +  
                    name.substring(0, name.lastIndexOf('.')));  
    }  
    
 解决方法:
 将生成的代码的包重新移动到新包中即可:
 比如系统生成的代码:java.io.xsd.IOException.java
 将本段代码中的 package java.io.xsd; 改为 package slp.java.io.xsd;即可。
 当然改后其他代码有依赖于此段代码的修改对应的包路径即可。
 
 ------------------------------
 axis2部署到免安装版的tomcat6没成功,无法刷出页面,通过一番研究发现:
 在基于linux平台下,如果tomcat安装在/root中的目录下,axis2的部署是不成功的,将tomcat移动到/home目录下,axis2就可以正常部署了。
 
 ------------------------------
 【课题】本想建立一个webservice来操作HDFS的目录信息,比如显示目录等,在eclipse下的java代码是可以运行的,将代码打包成服务后发布到网站,
 然后建立客户端测试,提示登录不了,估计是webservice的操作不被HDFS允许吧,这几天搞了这玩意儿,没搞出最终的结果有点遗憾啊,但是对webservice还是有点理解了,
 但是具体的WSDL语言还是要学会看才行。
【结果】
 Exception in thread "main" com.hdfs.client.HdfsOperation4IOExceptionException: failure to login
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at com.hdfs.client.HdfsOperation4Stub.getList(HdfsOperation4Stub.java:217)
    at com.one.myclass.main(myclass.java:28)

【ps】如果路过的你也遇到同样的问题且有解决方案,请指导我一下,谢谢!
上一篇:Hadoop在网站备份中的应用
下一篇:Ubuntu IP设置 /etc/network/interfaces

文章评论