- PR -

WeblogicへのWebサービス登録(デプロイ)について

1
投稿者投稿内容
岡田マン
会議室デビュー日: 2005/06/27
投稿数: 3
投稿日時: 2005-06-27 14:32
現在以下の環境にてWeblogic Serverを利用したWebサービスの開発を行っております。
・OS:WindowsXP sp2
・IDE:eclipse 3.0.2
・JVM:1.4.2_08
・APサーバ:Weblogic Server8.1J

Weblogicへクラスをデプロイをする際、build.xmlを用いて行っております。

クラス単体、あるいはJavaのAPIを参照する(Importする)クラスをデプロイするには
以下に記すbuild.xmlとWeblogic環境変数を定義したexamples.propertiesでデプロイ可能です。

しかし、我々が独自に作成したクラス(jarファイルを含む)を参照するクラスをデプロイすると
「NoClassDefFoundError」が発生してしまいます。
(テストはWeblogicのコンソール画面から行いました。)

build.xml実行の結果作成されるearファイルを展開して確認したところ、
以下のファイルに書かれた内容だけではWebサービスの対象となるクラスに
我々が作成したクラスを参照させるようなearファイルを作成できていないようです。

JavaAPIではないクラスを参照するクラスをデプロイするのに必要な
build.xmlの書き方についてご教示いただけますでしょうか。
(個人的には<servicegen>タグのあたりが怪しいと思いますが。。。)

宜しくお願い致します。

【build.xml】
**************************************************************
<project name="webservices-services" default="all" basedir=".">

<!-- set global properties for this build -->
<property environment="env"/>
<property file="./examples.properties"/>
<property name="build.compiler" value="${JAVAC}"/>
<property name="source" value="src"/>
<property name="build" value="bin"/>
<property name="war_file" value="services_client.war" />
<property name="ear_file" value="services_client.ear" />
<property name="client_jar_file" value="services_client.jar"/>
<property name="namespace" value="http://192.168.128.101:7001/services_client"/>

<target name="all" depends="clean, compile, ear"/>

<target name="check" depends="checkjar" unless="webservices.jar.present">
<fail>
webservices.jar file was not found. Download it from BEA web site
and place it in WL_HOME/server/lib directory.
</fail>
</target>
<target name="checkjar">
<available file="${WL_HOME}/server/lib/webservices.jar" property="webservices.jar.present"/>
</target>

<target name="clean">
<delete dir="${build}"/>
<delete file="${APPLICATIONS}/${ear_file}"/>
</target>

<target name="compile" depends="check">
<mkdir dir="${build}"/>
<javac srcdir="${source}" extdirs="lib" deprecation="on" debug="on" destdir="${build}"/>
</target>

<target name="ear" depends="check">
<servicegen
destEar="${APPLICATIONS}/${ear_file}"
warName="${war_file}">
<service
style="documentwrapped"
javaClassComponents="cmn.boundary.BdySoapIF"
targetNamespace="${namespace}"
serviceName="BdySoapIF_service"
serviceURI="/BdySoapIF_service"
generateTypes="True"
expandMethods="True">
<client
packageName="cmn.boundary"
clientJarName="${client_jar_file}"
/>
</service>
<classpath>
<pathelement path="${build}"/>
<pathelement path="${java.class.path}"/>
</classpath>
</servicegen>
</target>
</project>
**************************************************************

【examples.properties】
**************************************************************
#choose classic, modern, jikes, or jvc
JAVAC=modern
BEA_HOME=C:/bea
WL_HOME=C:/bea/weblogic81
APPLICATIONS=C:/bea/user_projects/domains/mydomain_2/applications
CLASSPATH=${java.class.path}
PORT=7001
**************************************************************
uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2005-06-27 15:10
servicegenだけではご希望の動作はできないようですね。servicegenでEarを作成した後、
wspackageタスクを実行し、その属性としてutilJarsやwebAppClassesに含めたいJarや
クラスを指定すればできるのではないでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)