志当存高远,功到自然成!

少年强则中国强,少年进步则中国进步!

BlogJava 首页 新随笔 联系 聚合 管理
  53 Posts :: 2 Stories :: 2 Comments :: 0 Trackbacks

前面讲了用tomcat+axis来实现webservice,而网上对于weblogic+axis实现webservice却不多,按照网上说的做却总是报错,不成功,所以我经过不停的试验,终于配置成功了weblogic+axis

首先我们下载一个weblogic8.1.3,jdk和axis的下载参照Tomcat+axis那片文章里的下载安装和设置

下载好后我们安装weblogic,一直按下一步即可

安装完成后运行Configuration Wizard来新建域配置,一直按下一步,直到输入UserName,Password and Description(我们这里都设置成weblogic),然后在按下一步直到完成

然后我们将下载的axis压缩包下的webapp目录下的axis目录拷贝到C:\bea\user_projects\domains\mydomain\applications下面

由于axis中的一些jar包和weblogic中的有冲突,所以要修改C:\bea\user_projects\domains\mydomain\startWebLogic.cmd文件,优先使用axis的jar,将其中的
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%CLASSPATH%;%WL_HOME%\server\lib\webservices.jar
改成
set CLASSPATH=%AXISCLASSPATH%;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar

set CLASSPATH=%CLASSPATH%;%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre \lib\rt.jar;%WL_HOME%\server\lib\webservices.jar(这里必须保证将AXISCLASSPATH加入了 CLASSPATH环境变量中)
保存运行这个文件启动weblogic控制台,如下图
查看更多精彩图片

启动好之后打开ie,在url中输入http://localhost:7001/console,输入用户名和密码进入Weblogic Server Console
查看更多精彩图片

点击展开部署节点--点击WEB应用程序模块--然后点击旁边的部署新的新的应用程序模块,会出现选择web应用的窗口,如下图
查看更多精彩图片

选择相应目录下的web应用程序,我们选择axis,如下图
查看更多精彩图片

点击目标模块按钮,接着在出现的窗口中点击部署即可(这里我发现如果不在环境变量CLASSPATH中设置%AXISCLASSPATH%时,部署将报错)完成后如下图
查看更多精彩图片

这是我们可以点击测试选项中的链接,也可以在ie中输入http://localhost:7001/axis/,如果出现以下界面,说明配置成功
查看更多精彩图片

这时我们就可以按照tomcat+axis那篇文章所说的发布web服务了

遇到的问题
weblogic+axis的最大问题是2者间jar包的冲突,客户端调用web服务时会报 NullPointerException错误,网上都说是axis的saaj.jar和weblogic的webservices.jar冲突,须将 saaj.jar加在webservices.jar前面,我按网上这么加了也没用,后来我把整个AXISCLASSPATH都加到了最前面,就如我上面 所说的那样,嘿,他就好了,我晕俄,网上的人也不知道是怎么成功的

还有一种说法就是在web-inf目录下加weblogic.xml,网上的人也没说要加到哪个web-inf下,我想想只有我的axis目录下有web-inf吧,就加他下面了,weblogic.xml的内容如下
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
 <container-descriptor>
  <prefer-web-inf-classes>true</prefer-web-inf-classes>
 </container-descriptor>
</weblogic-web-app>
这 样也可以解决客户端调用web服务时会报NullPointerException的错误,但是我发现这样做的后果是点击axis的service的 wsdl时出现无法显示页面。所以经过我不断的调试,只有像我前面说的那样修改startWebLogic.cmd中的set CLASSPATH项应该算是最完美的方法了,配这个东西的时候网上查了好久,都是千篇一律,说得没头没尾,所以说还是得自己去实践阿(实践是检验真理的 唯一标准嘛0 && image.height>0){if(image.width>=510){this.width=510;this.height=image.height*510/image.width;}}" alt="" align="absmiddle" border="0">)

注:在部署好的web应用程序的web-inf中加入weblogic.xml需要重新部署web应用程序
        修改了startWebLogic.cmd需重新执行startWebLogic.cmd,以便修改起作用

我在一个干净的winxp sp2,JDK1.4.2.05,weblogic8.1.3的环境下部署了axis1.4,和同事在家远程调用获得成功

相关程序安装目录
JDK        C:\j2sdk1.4.2_05
weblogic  C:\bea
axis1.4     C:\axis14(lib下有一些jar需另外当,老实说我也不知道哪些起了作用,只是把网上所说得涉及到的jar都找来了,嘿嘿)

相关环境变量设置
AXIS_HOME=C:\axis14
AXIS_LIB=%AXIS_HOME%\lib
AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar;%AXIS_LIB%\wsdl4j-1.5.1.jar;%AXIS_LIB%\activation.jar;%AXIS_LIB%\xmlrpc-2.0.jar

JAVA_HOME=C:\j2sdk1.4.2_05
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%AXISCLASSPATH%;

Path前加了%JAVA_HOME%\bin


Feedback

# re: Weblogic+Axis实现webservice[未登录] 2016-08-04 18:01 coder
更好的方法见
http://blog.csdn.net/xgx1985xgx/article/details/6257368  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: