MyEclipse开发webservice的几个问题

来源:互联网 发布:宾馆网络怎是连接不上 编辑:程序博客网 时间:2024/05/13 08:52

最近学着用MyEclipse开发webservice服务。自己做了个例子,这个例子既是webservice服务端,同时又是另一个webservice的客户端,原因是双方需要互相调用。期间遇到了几个问题。

问题一:如果用JDK1.4运行没问题,如果用JDK1.5,最后运行时报错:javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl not found。
原因:是由tomcat 里D:/Program Files/Apache Software Foundation/Tomcat 5.0/common/endorsed下的两个有关xml的jar文件和JDK1.5里的xml解析器冲突造成的,endorsed下有两个jar包:xercesImpl.jar和xml-apis.jar,其中的类 javax.xml.transform.TransformerFactory 与jdk1.5中的类,org.apache.xalan.processor.TransformerFactoryImpl其实是同一个类。
解决办法1:下载xalan.jar包,下载地址http://www.java2s.com/Code/JarDownload/xalan.jar.zip
解决办法2:将xml-apis.jar移出endorsed文件夹。

问题二:如果我将新建的HelloWorld同时作为另一个webservice的客户端,可以将另一个客户端的wsdl地址在Jbuilder中自动生成客户端,然后拷贝到HelloWorld中。由于Jbuilder中自动生成客户端中调用了一些方法,因此需要引用如下几个包:axis.jar、commons-discovery.jar、jaxrpc.jar、junit.jar和unittest.jar。期间遇到的问题必须使用JDK1.5,用JDK1.4时报错如下:
java.lang.NoSuchMethodError: javax.xml.namespace.QName.<init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V

解决办法:版本冲突问题,具体原因我不清楚,不过用JDK1.5就没问题了。^_^

问题三:发布成功后,另外一个WebLogic下的系统调用我的webservice地址http://localhost:8080/HelloWorld/services/HelloWorld?wsdl报错,报错如下:axis client error Bad envelope tag: definitions
解决办法:将?wsdl去掉,调用地址http://localhost:8080/HelloWorld/services/HelloWorld调用成功。我晕了+_+

原创粉丝点击