weblogic 自己有一套可以兼容webservice 的API
下面就简单结合我的工作,做个介绍。
1.建立eOffice 工作跟目录
目录如下 D:/eclipse/BusinessLogic/eOffice
2.Source save 下在所有的有关的文件。
a. java 文件,b. xml文件,c.weblogic 环境设置文件
3.最终的目录结构如右所示。
4.使用ANT编译工程
在使用ANT前首先执行setenv.cmd 是weblogic 的命令 可以在 ./bea/weblogic81/server/bin 下面找到他。
5.在build.xml 之前先介绍一下build.xml
build.xml
<!-- basedir 指定根目录-->
<project name="ejblink" default="all" basedir="D:/eclipse/BusinessLogic/eOffice">
<!-- set global properties for this build -->
<property name="LibPath" value="D:/bea/weblogic81/server/lib"/>
<property name="source" value="."/>
<property name="build" value="${source}/build"/>
<property name="dist" value="${source}/dist"/>
<property name="ejbc_jar_file" value="WebServicAPI.jar"/>
<property name="war_file" value="WebService.war"/>
<property name="ear_file" value="WebService.ear"/>
<!--声明串行化复杂数据结构-->
<property name="type.string01" value="java.math.BigDecimal,eOffice.Po.POHead,eOffice.Po.POData_Return,eOffice.Po.PODetail"/>
<property name="type.string02" value="java.util.Vector,eOffice.Po.fcheck.CheckIMCPrice,eOffice.Po.fcheck.CheckIMCPrice_
Return,eOffice.Po.RequestPOModify,eOffice.Po.RequestPOModify_Return"/>
<property name="type.string03" value="eOffice.Gr.CreateGR_Return,eOffice.Gr.CreateGR"/>
<property name="type.string04" value="eOffice.errequest.GRCancel_Return,eOffice.errequest.GRCancel"/>
<property name="type.string05" value="eOffice.invoice.InvoiceFix,eOffice.invoice.InvoiceFix_Return"/>
<property name="type.string" value="${type.string01},${type.string02},${type.string03},${type.string04},${type.string05}"/>
<property name="eDaemon.home" location="D:/eclipse/BusinessLogic/eOffice" />
<property name="src.home" location="${eDaemon.home}" />
<property name="build.home" location="${eDaemon.home}/build" />
<property name="api.lib" location="D:/Project/eclipse/lib"/>
<property name="apps.dir" value="${source}/ServerEar"/>
<property name="webappdir" value="${source}/WebApp"/>
<property name="TypeFolder" value="${source}/type"/>
<!--打ear包,之前先执行build=ejb,Type-->
<property name="client_file" value="client.jar"/>
<target name="ear" depends="build-ejb,Type">
<delete dir="${build}"/>
<mkdir dir="${build}"/>
<copy todir="${build}" file="${dist}/${ejbc_jar_file}"/>
<echo >start</echo>
<!--servicegen : weblogic 自带任务 打ear包-->
<servicegen destEar="${apps.dir}/${ear_file}" warName="${war_file}" contextURI="b2b/soap"><!--服务根目录-->
<classpath>
<pathelement location="E:/WorkArea/WebService"/>
<pathelement path="${source}/classes"/>
<pathelement path="${dist}/${ejbc_jar_file}"/>
<pathelement path="${LibPath}/webservices.jar"/>
<pathelement path="${LibPath}/weblogic.jar"/>
</classpath>
<!--serviceURI : 服务url-->
<service ejbJar="${build}/${ejbc_jar_file}" typeMappingFile="${source}/classes/types.xml"
targetNamespace="http://www.imarketchina.com/rpc" serviceName="eOffice" serviceURI="/servlet/rpcrouter"
generateTypes="True" expandMethods="True">
<client packageName="eOffice.Client"
clientJarName="${client_file}"
useServerTypes="True" />
</service>
</servicegen>
</target>
<!--autotype: weblogic 自带创建复杂的数据结构串行化-->
<target name="Type">
<autotype javatypes="${type.string}" targetNamespace="http://www.imarketchina.com/soap"
packageName="" encoding="http://schemas.xmlsoap.org/soap/encoding/"
destDir="${source}/classes" keepGenerated="True" >
<classpath>
<pathelement path="${LibPath}/webservices.jar"/>
<pathelement path="${LibPath}/weblogic.jar"/>
<pathelement path="${basedir}/dist/WebServicAPI.jar"/>
</classpath>
</autotype>
</target>。。。。</project>
6 .执行buid.xml 生成 服务包(D:/eclipse/BusinessLogic/eOffice/ServerEar、WebService.ear)