以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 Web Services & Semantic Web Services 』  (http://bbs.xml.org.cn/list.asp?boardid=10)
----  一个 web services的小例子的错误:  (http://bbs.xml.org.cn/dispbbs.asp?boardid=10&rootid=&id=24195)


--  作者:菜籽
--  发布时间:11/12/2005 7:31:00 PM

--  一个 web services的小例子的错误:
环境搭建
安装jdk1.5.0_02
安装tomcat-5.0.28到C:\Tomcat并验证安装是否成功
下载AXIS项目打包文件axis-1_3.zip解压缩后将目录中的webapps目录下的axis子目录拷贝到C:\Tomcat\webapps下。
下载相关包:  
a.mail.jar 下载地址:http://java.sun.com/products/javamail  
b.activation.jar 下载地址:http://java.sun.com/products/javabeans/glasgow/jaf.html  
c.xerces.jar 下载地址:http://xml.apache.org/xerces-j/index.html  
d.xmlsec-1.2.1.jar 下载地址:http://xml.apache.org/security/
连同axis-1_3\lib目录下的文件一起拷备到Tomcat\commom\lib目录下
验证AXIS的安装:重新启动Tomcat服务器后打开浏览器输入网址http://localhost:8080/axis 后的页面,点击链接"Validate"来验证Axis所需的几个JAVA包是否齐全。信息 如下:
Needed Components
Found SAAJ API ( javax.xml.soap.SOAPMessage ) at E:\java\tomcat\jakarta-tomcat-5.0.28\common\lib\saaj.jar

Found JAX-RPC API ( javax.xml.rpc.Service ) at E:\java\tomcat\jakarta-tomcat-5.0.28\common\lib\jaxrpc.jar

Found Apache-Axis ( org.apache.axis.transport.http.AxisServlet ) at E:\java\tomcat\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\lib\axis.jar

Found Jakarta-Commons Discovery ( org.apache.commons.discovery.Resource ) at E:\java\tomcat\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\lib\commons-discovery-0.2.jar

Found Jakarta-Commons Logging ( org.apache.commons.logging.Log ) at E:\java\tomcat\jakarta-tomcat-5.0.28\bin\commons-logging-api.jar

Found Log4j ( org.apache.log4j.Layout ) at E:\java\tomcat\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\lib\log4j-1.2.8.jar

Found IBM's WSDL4Java ( com.ibm.wsdl.factory.WSDLFactoryImpl ) at E:\java\tomcat\jakarta-tomcat-5.0.28\webapps\axis\WEB-INF\lib\wsdl4j-1.5.1.jar

Found JAXP implementation ( javax.xml.parsers.SAXParserFactory ) at an unknown location

Found Activation API ( javax.activation.DataHandler ) at E:\java\tomcat\jakarta-tomcat-5.0.28\common\lib\activation.jar
Optional Components
Found Mail API ( javax.mail.internet.MimeMessage ) at E:\java\tomcat\jakarta-tomcat-5.0.28\common\lib\mail.jar

Found XML Security API ( org.apache.xml.security.Init ) at E:\java\tomcat\jakarta-tomcat-5.0.28\common\lib\xmlsec-1.2.1.jar

Found Java Secure Socket Extension ( javax.net.ssl.SSLSocketFactory ) at an unknown location
The core axis libraries are present.The optional components are present.
Note: Even if everything this page probes for is present, there is no guarantee your web service will work, because there are many configuration options that we do not check for. These tests are necessary but not sufficient

编写JAVA类Hello.java,内容如下:

public class Hello{
public String hello(String name){
  if(name==null)
   name = "";
  return "你好"+name+",欢迎来到Web服务的世界!";
}
}

将该文件改名为Hello.jws并拷贝到AXIS应用目录C:\Tomcat\webapps\axis下。

下面我们就可以测试该Web服务了,打开浏览器并输入刚刚创建的文件名对应的URL地址 http://localhost:8080/axis/Hello.jws 浏览器显示如下结果:
There is a Web Service here
Click to see the WSDL
(一个超连接)
点击页面上的链接查看该Web服务对应的WSDL信息如下所示:
  <?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://localhost:8080/axis/Hello.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/axis/Hello.jws" xmlns:intf="http://localhost:8080/axis/Hello.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!--
WSDL created by Apache Axis version: 1.3
Built on Oct 05, 2005 (05:23:37 EDT)

  -->
- <wsdl:message name="helloRequest">
  <wsdl:part name="name" type="xsd:string" />
  </wsdl:message>
- <wsdl:message name="helloResponse">
  <wsdl:part name="helloReturn" type="xsd:string" />
  </wsdl:message>
- <wsdl:portType name="Hello">
- <wsdl:operation name="hello" parameterOrder="name">
  <wsdl:input message="impl:helloRequest" name="helloRequest" />
  <wsdl:output message="impl:helloResponse" name="helloResponse" />
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="HelloSoapBinding" type="impl:Hello">
  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="hello">
  <wsdlsoap:operation soapAction="" />
- <wsdl:input name="helloRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
  </wsdl:input>
- <wsdl:output name="helloResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/axis/Hello.jws" use="encoded" />
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="HelloService">
- <wsdl:port binding="impl:HelloSoapBinding" name="Hello">
  <wsdlsoap:address location="http://localhost:8080/axis/Hello.jws" />
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>

打开命令行窗口,转到AXIS目录下的WEB-INF子目录。确保Tomcat服务已经处于启动状态,键入命令 :
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
出现错误信息:

-Unable to find required classes <javax.activation.Datehandler and javax.mail.internet.MimeMultipart>.Attachment support is disabled.
这个时候在在当前所在目录下产生一个子目录 localhost/axis/Hello_jws,该目录下有四个JAVA源文件,
Hello.java 定义了Web服务接口,此例中只有一个hello方法。

HelloService.java 定义了用于获取Web服务接口的方法。

HelloServiceLocator.java 接口HelloService的具体实现。

HelloSoapBindingStub.java Web服务客户端桩,通过该类与服务器交互。
文件是生成了,但是上面又错误信息.往下的各个步骤都不能进行

各位帮忙,看看是哪里出错了,谢谢,
新加一个类Main.java,为了方便,让这个类与刚产生的四个类都在同一个包下。内容如下:

//Main.java
package localhost.axis.Hello_jws;
public class Main{
public static void main(String[] args) throws Exception{
HelloService service = new HelloServiceLocator();
Hello hello = service.getHello();
System.out.println("Response:"+hello.hello("罐头"));
}
}

使用以下命令进行编译:

javac -classpath lib\axis.jar;lib\jaxrpc.jar localhost\axis\Hello_jws\*.java


如果编译没有问题的话执行该测试程序:

java -Djava.ext.dirs=lib -cp . localhost.axis.Hello_jws.Main//运行结果:Response:你好罐头,欢迎来到Web服务的世界!



--  作者:菜籽
--  发布时间:11/13/2005 11:04:00 AM

--  
感觉自己好像配置有点问题,不知道哪位能指点一下,谢谢
--  作者:alan-vinson
--  发布时间:11/16/2005 4:19:00 PM

--  
classpath设置有问题。
--  作者:菜籽
--  发布时间:11/16/2005 5:01:00 PM

--  
什么地方
--  作者:菜籽
--  发布时间:11/18/2005 9:48:00 AM

--  
验证AXIS的安装:重新启动Tomcat服务器后打开浏览器输入网址http://localhost:8080/axis 后的页面:

此主题相关图片如下:
按此在新窗口浏览图片
点击链接"Validate"来验证Axis所需的几个JAVA包是否齐全。信息 如下:

此主题相关图片如下:
按此在新窗口浏览图片
编写JAVA类Hello.java,内容如下:
public class Hello{
public String hello(String name){
  if(name==null)
   name = "";
  return "你好"+name+",欢迎来到Web服务的世界!";
}
}
将该文件改名为Hello.jws并拷贝到AXIS应用目录C:\Tomcat\webapps\axis下。

下面我们就可以测试该Web服务了,打开浏览器并输入刚刚创建的文件名对应的URL地址 http://localhost:8080/axis/Hello.jws 浏览器显示如下结果:

此主题相关图片如下:
按此在新窗口浏览图片
点击页面上的链接查看该Web服务对应的WSDL信息如下所示:

此主题相关图片如下:
按此在新窗口浏览图片
打开命令行窗口,转到AXIS目录下的WEB-INF子目录。确保Tomcat服务已经处于启动状态,键入命令 :
Java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl

命令行终端错误信息:
Unable to find required classes <javax.activation.Datehandler and javax.mail.internet.MimeMultipart>.Attachment support is disabled
tomat 错误信息:
unable to find congigfile. creating new servlet engine config file:/web-inf/sever-config.wsdd

[此贴子已经被作者于2005-11-18 10:13:50编辑过]

--  作者:boll666
--  发布时间:12/30/2005 12:58:00 AM

--  
sorry ,不懂
--  作者:step123
--  发布时间:1/3/2006 1:58:00 PM

--  
问题出在Java -Djava.ext.dirs=lib 上,我也现现过同样的问题,它指明你要用的包在lib目录下面找,这个时候,运行时,不会使用classpath的设置,而直接在lib目录下面找指定的包,显然activation.jar 和mail.jar不在这个lib中,当然找不到,当然会提示找不到。两种方法解决:
1.去掉-Djava.exit.dirs=lib 直接运行Java  org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
2.或者将相关包copy到WEB-INF/lib中。

我也是试了半天,才试出来的。网上的文档,没几个说明的。


--  作者:shrimpLucky
--  发布时间:1/5/2006 4:47:00 PM

--  
7楼的有道理!
我一般是将axis 下的lib下的文件添加到axisclasspath环境变量中,象activation.jar 和mail.jar放在tomcat的common\lib目录下,使用工具时,命令行提示符在你所要存放生成文件的目录下,运行
java -classpath %axisclasspath%;%catalina_home%\common\lib\activation.jar;;%catalina_home%\common\lib\mail.jar org.apache.axis.wsdl.WSDL2Java http://localhost:8080/axis/Hello.jws?wsdl
--  作者:shrimpLucky
--  发布时间:1/5/2006 4:54:00 PM

--  
突然发现上面多写了一个 ;

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
78.125ms