- - PR -
S2BlazeDSを用いたFlex+Javaアプリについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2009-03-03 14:54
はじめまして。
初めて投稿させていただきます。 @ITさんで紹介されていたS2BlazeDSを用いたFlex+JavaアプリでDB接続をSql Server2000に変更したところうまくいかないため、アドバイスお願い致します。 http://www.atmarkit.co.jp/fwcr/rensai2/flexjava02/flexjava02_1.html 記事でサンプルとしてダウンロードできる、「HelloS2BlazeDS」をEclipseのプロジェクトにインポートを行い、以下の点をSql Server2000用に変更してみました。 ■jdbc.diconファイル <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.3//EN" "http://www.seasar.org/dtd/components23.dtd"> <components namespace="jdbc"> <component class="org.seasar.extension.jdbc.impl.BasicResultSetFactory"/> <component class="org.seasar.extension.jdbc.impl.BasicStatementFactory"/> <component name="transactionManager" class="org.seasar.extension.jta.TransactionManagerImpl"/> <!-- 接続対象DBの設定(MS SQL Server) --> <component name="xaDataSource" class="org.seasar.extension.dbcp.impl.XADataSourceImpl"> <property name="driverClassName"> "com.microsoft.jdbc.sqlserver.SQLServerDriver" </property> <property name="URL"> "jdbc:microsoft:sqlserver://192.168.0.1:1433;DatabaseName=TEST_DB" </property> <property name="user">"sa"</property> <property name="password">"sa"</property> </component> <component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl"> <property name="timeout">600</property> <property name="maxPoolSize">3</property> <destroyMethod name="close"/> </component> <component name="dataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl"/> </components> ■jdbcドライバ 以下のjarファイルをmicrosoftのサイトからダウンロードしてlibフォルダに格納しました。 ・msbase.jar ・mssqlserver.jar ・msutil.jar ■java側のTestJdbcクラスのメソッド SQL文を直接実行したかったので以下の用に変更しました。 public List<Test> getTest(Test test) { List<Test> results = jdbcManager .selectBySql(Test.class, "select id, name from TEST_TABLE") .getResultList(); return results; } Testクラスは特に変更していません、以下のようになっています。 package flex.samples.entity; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.Id; /** * Testエンティティです。 */ @Entity public class Test implements Serializable { static final long serialVersionUID = 1L; /** 識別子 */ @Id public Integer id; /** 名前です */ public String name; } 以下はコンソールに出ているログになります。 ■Tomcat起動時 2009/03/03 14:45:25 org.apache.catalina.core.AprLifecycleListener init 情報: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\AllInOneEclipse\jre1.6\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/AllInOneEclipse/eclipse/jre/bin/client;C:/AllInOneEclipse/eclipse/jre/bin;C:\oracle\ora92\bin;C:\Program Files\Java\jdk1.6.0_12\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\Microsoft SQL Server\80\Tools\BINN 2009/03/03 14:45:26 org.apache.coyote.http11.Http11Protocol init 情報: Coyote HTTP/1.1を http-8400 で初期化します 2009/03/03 14:45:26 org.apache.catalina.startup.Catalina load 情報: Initialization processed in 519 ms 2009/03/03 14:45:26 org.apache.catalina.core.StandardService start 情報: サービス Catalina を起動します 2009/03/03 14:45:26 org.apache.catalina.core.StandardEngine start 情報: Starting Servlet Engine: Apache Tomcat/6.0.14 DEBUG 2009-03-03 14:45:29,390 [main] ContextRealPath=C:\AllInOneEclipse\workspace\HelloS2BlazeDS\ SERVER_SOFTWARE=Apache Tomcat/6.0.14, ServletContextName=null, MajorVersion=2, MinorVersion=5 INFO 2009-03-03 14:45:29,718 [main] Loading validation rules file from '/WEB-INF/validator-rules.xml' DEBUG 2009-03-03 14:45:30,124 [main] 環境変数#Envにファイル(env.txt)から値(ct)が設定されました DEBUG 2009-03-03 14:45:30,265 [main] S2Containerを作成します。path=hotdeploy.dicon DEBUG 2009-03-03 14:45:30,281 [main] S2Containerを作成します。path=convention.dicon DEBUG 2009-03-03 14:45:30,515 [main] S2Containerを作成しました。path=convention.dicon DEBUG 2009-03-03 14:45:30,515 [main] S2Containerを作成します。path=customizer.dicon DEBUG 2009-03-03 14:45:30,546 [main] S2Containerを作成します。path=default-customizer.dicon DEBUG 2009-03-03 14:45:30,546 [main] S2Containerを作成します。path=std-customizer.dicon DEBUG 2009-03-03 14:45:30,562 [main] S2Containerを作成します。path=std-customizer-tiger.dicon DEBUG 2009-03-03 14:45:30,609 [main] S2Containerを作成しました。path=std-customizer-tiger.dicon DEBUG 2009-03-03 14:45:30,624 [main] S2Containerを作成しました。path=std-customizer.dicon DEBUG 2009-03-03 14:45:30,640 [main] S2Containerを作成しました。path=default-customizer.dicon DEBUG 2009-03-03 14:45:30,656 [main] S2Containerを作成しました。path=customizer.dicon DEBUG 2009-03-03 14:45:30,656 [main] S2Containerを作成します。path=creator.dicon DEBUG 2009-03-03 14:45:30,703 [main] S2Containerを作成しました。path=creator.dicon DEBUG 2009-03-03 14:45:30,703 [main] S2Containerを作成しました。path=hotdeploy.dicon WARN 2009-03-03 14:45:30,765 [main] flex.samples.creator.JdbcCreatorの引数(interface org.seasar.framework.container.InstanceDef)が見つからないのでnullを設定します DEBUG 2009-03-03 14:45:30,765 [main] S2Containerを作成します。path=app.dicon DEBUG 2009-03-03 14:45:30,781 [main] S2Containerを作成します。path=convention.dicon DEBUG 2009-03-03 14:45:30,781 [main] S2Containerを作成しました。path=convention.dicon DEBUG 2009-03-03 14:45:30,781 [main] S2Containerを作成します。path=aop.dicon DEBUG 2009-03-03 14:45:30,828 [main] S2Containerを作成しました。path=aop.dicon DEBUG 2009-03-03 14:45:30,828 [main] S2Containerを作成します。path=j2ee.dicon DEBUG 2009-03-03 14:45:30,828 [main] S2Containerを作成します。path=jta.dicon DEBUG 2009-03-03 14:45:30,890 [main] S2Containerを作成しました。path=jta.dicon DEBUG 2009-03-03 14:45:30,890 [main] S2Containerを作成します。path=jdbc.dicon DEBUG 2009-03-03 14:45:30,968 [main] S2Containerを作成しました。path=jdbc.dicon DEBUG 2009-03-03 14:45:30,984 [main] S2Containerを作成しました。path=j2ee.dicon DEBUG 2009-03-03 14:45:30,984 [main] S2Containerを作成します。path=s2jdbc.dicon DEBUG 2009-03-03 14:45:30,999 [main] S2Containerを作成します。path=s2jdbc-internal.dicon DEBUG 2009-03-03 14:45:31,046 [main] S2Containerを作成しました。path=s2jdbc-internal.dicon DEBUG 2009-03-03 14:45:31,171 [main] S2Containerを作成しました。path=s2jdbc.dicon DEBUG 2009-03-03 14:45:31,171 [main] S2Containerを作成しました。path=app.dicon WARN 2009-03-03 14:45:31,484 [main] org.seasar.extension.jdbc.manager.JdbcManagerImplのプロパティ(syncRegistry)が見つからないので設定をスキップします INFO 2009-03-03 14:45:31,499 [main] Running on [ENV]ct, [DEPLOY MODE]Hot Deploy 2009/03/03 14:45:42 org.apache.catalina.core.ApplicationContext log 情報: ContextListener: contextInitialized() 2009/03/03 14:45:42 org.apache.catalina.core.ApplicationContext log 情報: SessionListener: contextInitialized() ****************************************************************************** * * * Unable to connect to the samples database. * * You must start the samples database before you can run the samples. * * To start the samples database: * * 1. Open a command prompt and go to the {install-dir}/sampledb dir * * 2. Run startdb.bat (Windows) or startdb.sh (Unix-based systems) * * * ****************************************************************************** 2009/03/03 14:45:47 org.apache.coyote.http11.Http11Protocol start 情報: Coyote HTTP/1.1を http-8400 で起動します 2009/03/03 14:45:47 org.apache.jk.common.ChannelSocket init 情報: JK: ajp13 listening on /0.0.0.0:8009 2009/03/03 14:45:47 org.apache.jk.server.JkMain start 情報: Jk running ID=0 time=0/32 config=null 2009/03/03 14:45:47 org.apache.catalina.startup.Catalina start 情報: Server startup in 21262 ms ■実行時のログ DEBUG 2009-03-03 14:50:15,335 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:15,351 [http-8400-1] HOT deployを終了しました DEBUG 2009-03-03 14:50:15,617 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:15,617 [http-8400-1] HOT deployを終了しました DEBUG 2009-03-03 14:50:15,710 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:15,726 [http-8400-1] HOT deployを終了しました DEBUG 2009-03-03 14:50:15,914 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:15,914 [http-8400-1] HOT deployを終了しました DEBUG 2009-03-03 14:50:16,476 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:16,476 [http-8400-1] HOT deployを終了しました DEBUG 2009-03-03 14:50:22,210 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:22,429 [http-8400-1] HOT deployを終了しました DEBUG 2009-03-03 14:50:22,585 [http-8400-1] HOT deployを開始します DEBUG 2009-03-03 14:50:22,663 [http-8400-1] クラス(flex.samples.service.HelloWorldService[helloWorldService])のコンポーネント定義を登録します DEBUG 2009-03-03 14:50:23,023 [http-8400-1] クラス(flex.samples.jdbc.TestJdbc[testJdbc])のコンポーネント定義を登録します DEBUG 2009-03-03 14:50:23,054 [http-8400-1] BEGIN flex.samples.service.HelloWorldService#getWorld(flex.samples.dto.HelloWorldRequestDto@8ec1c) DEBUG 2009-03-03 14:50:23,070 [http-8400-1] トランザクションを開始しました。tx=[FormatId=4360, GlobalId=1236059423070/0, BranchId=] DEBUG 2009-03-03 14:50:23,070 [http-8400-1] BEGIN flex.samples.jdbc.TestJdbc#getTest(flex.samples.entity.Test@6b581a) DEBUG 2009-03-03 14:50:33,315 [http-8400-1] select id, name from TEST_TABLE [SWF] /HelloS2BlazeDS/bin-debug/HelloS2BlazeDS.swf - 936,416 バイト (圧縮後) [FaultEvent fault=[RPC Fault faultString="java.lang.NullPointerException : null" faultCode="Server.Processing" faultDetail="null"] messageId="9E54C7FE-170B-DF56-EBF4-18712ECF6C6A" type="fault" bubbles=false cancelable=true eventPhase=2] 以上、長くなりましたがどうぞ宜しくお願い致します。 ****************************************************** <環境> ・アプリケーションサーバー:Trunky(ver.3-0-0-544) ・Eclipse(ver.3.4.1)※ベクターにてダウンロードを行ったAll In One Eclipseです。 ・JDK(ver.1.6.9_12-b04) ・DBサーバー:SQL Server2000 ****************************************************** |
|
投稿日時: 2009-03-03 16:57
追伸:
例外が発生しているのは List<Test> results = jdbcManager .selectBySql(Test.class, "select id, name from TEST_TABLE") .getResultList(); の部分のようでした。 long count = jdbcManager.getCountBySql("select * from TEST_TABLE"); と違うメソッドも試してみたのですが、結果は同じでした。 |
1