JBoss 4.2.2GA:setProperty must be overridden by all subclasses of SOAPMessage
百度了下,原因是JBoss4不支持JDK 6,因为JDK6自带了SOAP,如果用5.0的即可,可我米有5.0……
http://community.jboss.org/wiki/JBossWithJDK6 这里提供了一个patch,我是解压版的 不会用 - _ -
在http://www.jguru.com/forums/view.jsp?EID=1364629看到有说删除jboss-saaj.jar即可,但是似乎米有效果……
难道真的要装个5.0的JDK?百度之,得解(http://blog.csdn.net/evan_endian/archive/2008/10/31/3196273.aspx):
把${JBOSS_HOME}/lib/中除了getopt.jar, jboss-system.jar, jboss-jmx.jar其他所有的jar拷贝进${JBOSS_HOME}/lib/endorsed,同时拷贝${JBOSS_HOME}/client/目录中的jboss-saaj.jar ,jboss-jaxrpc.jar到${JBOSS_HOME}/lib/endorsed目录下,这样服务器将使用jboss自带的老版本,经验证有效。
测试类跑成功了 满心欢喜^^
在Tomcat中部署Axis搭建SOAP环境
几个下载地址:
- Axis:http://www.apache.org/dyn/closer.cgi/ws/axis/1_4
- XML解析器xerces-j:http://archive.apache.org/dist/xml/xerces-j/
- JavaMail API:http://java.sun.com/products/javamail/downloads/index.html
- JavaBeans Activation Framework (JAF):http://java.sun.com/javase/technologies/desktop/javabeans/jaf/downloads/index.html
搭建步骤:
- 将Axis的压缩包解压后webapps目录下的axis目录拷贝到Tomcat的webapps目录下,
- 将xerces-j解压后得到的jar包放入Tomcat/webapps/axis/WEB-INF/lib目录下,
- 如果要支持JWS(临时发布,由Axis自动编译部署,即下文中用到的),要将jdk的tools.jar也拷贝进该目录。
- 同时配置环境变量,CLASSPATH中加上该目录下的所有jar包。
- 将JavaMail和JAF解压后的jar包拷到JDK的lib目录下和tomcat的lib目录下。
- 启动Tomcat,此时应可以看到axis的目录并能正常访问。
- 下面编写一个WebService程式HelloWorld.jws,并将之放入axis的目录下(会被axis自动编译部署):
- 编写测试程式,在eclipse中创建一个项目,导入axis的lib目录下的所有jar包,新建TestClient类,代码如下:
-
import java.net.MalformedURLException;
-
import java.net.URL;
-
import java.rmi.RemoteException;
-
-
import javax.xml.rpc.ServiceException;
-
-
import org.apache.axis.client.Call;
-
import org.apache.axis.client.Service;
-
-
public class TestClient {
-
-
String url = "http://localhost:8080/axis/HelloWorld.jws";
-
Service service = new Service();
-
Call call = (Call) service.createCall();
-
call.setOperationName("sayHelloWorld");
-
}
-
-
try {
-
new TestClient().doTest("YOYO");
-
e.printStackTrace();
-
e.printStackTrace();
-
} catch (ServiceException e) {
-
e.printStackTrace();
-
}
-
}
-
-
}
-
- 运行该程式,若能得到正确的运行结果("YOYO, Hello World!")即说明成功搭建了一个SOAP环境。