約 3,640,968 件
https://w.atwiki.jp/duke15/pages/23.html
技評の JBoss 入門 JBoss site のマニュアルから入るのがよいのかもしれないが、 ざっと全体を眺めるため、日本語の入門本で動作を確認してみる。 ベースが 3.0.7/3.2.0 なので 4.0.3 SP1 で動くか少し心配。 細かいエラーを覚えてないが、4.0.3 でなかなか消えないエラーが SP1 にしたことで あっさり消えたので、今回も SP1 を使用した。 1章 JBoss モジュールの紹介や、EJB の基礎 EJB の種類 いまさらですが... Session Bean javax.ejb.SessionBean Entity Bean javax.ejb.EntityBean Message Driven Bean 必須インターフェイス Component Interface Home Interface Bean class Deployment Descriptor ejb-jar.xml EJB-JAR file structure xxejb.jar +- Sample.class # component interface +- SampleHome.class # home interface +- SampleBean.class # EJB Bean +- META-INF +- ejb-jar.xml ejb-jar のサンプルは #step1 内にある EJB Interface Remote and Local Component Interface Home Interface Remote Interface javax.ejb.EJBObject javax.ejb.EJBHome Local Interface javax.ejb.EJBLocalObject javax.ejb.EJBLocalHome JBoss deployment descriptor jboss.xml JNDI name 等 ejb-jar.xml にかけない設定情報を記述する. WEB-INF におく jboss-web.xml JNDI name 等 web.xml に記述できない設定情報を記述 jbosscmp-jdbx.cml CMP Entity EJB module 用。データソース名、フィールドと SQL タイプの マッピングなど 2章 プログラミングの基礎 step1 最初のサンプル。簡単な CMP Entity Bean を jar + META-INF/ejb-jar.xml 形式でデプロイする。クライアントサイドはスタンドアローンプログラム。 Counter Component interface, extends EJBObject, getValue(), setValue() などを定義するインターフェイス CounterHome Home interface, extends EJBHome, create(), findByPrimaryKey(), findAll() 等を定義するインターフェイス CounterBean Entity Bean, public abstract class CounterBean implements EntityBean, 永続化フィールドに関する setter, getter を abstract で定義.ejbCreate をはじめ、ejbActivate(), ejbPassivate(), ejbLoad(), ejbStore, ejbRemove() 等が定義される。 CounterClient JNDI で Home インターフェイスを取得し、プライマリキーで エンティティビーンをみつけて、なければ作成。findAll() ですべてのエンティティ を見つけて表示する。 step1-ejb.jar jar file, web.xml は入っていない。純粋に EJB のみを含む。 META-INF/ META-INF/MANIFEST.MF sample/ sample/ejb/ META-INF/ejb-jar.xml META-INF/jboss.xml META-INF/jbosscmp-jdbc.xml sample/ejb/Counter.class sample/ejb/CounterBean.class sample/ejb/CounterHome.class deploy 時のメッセージ 17 36 35,948 INFO [ProxyFactory] Bound EJB Home Counter to jndi ejb/step1/co unter 17 36 36,620 INFO [EJBDeployer] Deployed file /C /usr/local/jboss/server/defau lt/deploy/step1-ejb.jar ejb-jar.xml Entity Bean の定義 ?xml version="1.0"? !DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http //java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd" ejb-jar enterprise-beans entity ejb-name Counter /ejb-name home sample.ejb.CounterHome /home remote sample.ejb.Counter /remote ejb-class sample.ejb.CounterBean /ejb-class persistence-type Container /persistence-type prim-key-class java.lang.String /prim-key-class reentrant False /reentrant abstract-schema-name Counter /abstract-schema-name cmp-field field-name name /field-name /cmp-field cmp-field field-name value /field-name /cmp-field primkey-field name /primkey-field /entity /enterprise-beans /ejb-jar jboss.xml EJB と JNDI の対応付け ?xml version="1.0" encoding="UTF-8"? !DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS//EN" "http //www.jboss.org/j2ee/dtd/jboss.dtd" jboss enterprise-beans entity ejb-name Counter /ejb-name jndi-name ejb/step1/counter /jndi-name /entity /enterprise-beans /jboss jbosscmp-jdbc.xml CMP bean を DB にどのようにおくかを指定 ?xml version="1.0"? !DOCTYPE jbosscmp-jdbc PUBLIC "-//JBoss//DTD JBOSSCMP-JDBC 3.0//EN" "http //www.jboss.org/j2ee/dtd/jbosscmp-jdbc_3_0.dtd" jbosscmp-jdbc defaults create-table true /create-table remove-table true /remove-table /defaults enterprise-beans entity ejb-name Counter /ejb-name table-name step1 /table-name /entity /enterprise-beans /jbosscmp-jdbc jndi.properties 以下の内容の物でコンパイルの過程でクラスのディレクトリ にコピーされているが jar には含まれていない。動いてしまうのはこれらが デフォルトと一致しているためか... いや、違う、これはクライアントプログラム のための物だ。 java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory java.naming.provider.url=localhost 1099 java.naming.factory.url.pkgs=org.jboss.naming org.jnp.interfaces 実行してみるとエラーになった。 E \ghjbossbook\samples\chap2\step1 step1 [test] javax.naming.CommunicationException [Root exception is java.io.InvalidClassException org.jboss.invocation.InvokerInterceptor; unable to create instance] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java 707) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java 572) at javax.naming.InitialContext.lookup(Unknown Source) at sample.client.CounterClient.getHome(CounterClient.java 48) at sample.client.CounterClient.main(CounterClient.java 19) Caused by java.io.InvalidClassException org.jboss.invocation.InvokerInterceptor; unable to create instance at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at org.jboss.proxy.Interceptor.readExternal(Interceptor.java 66) at java.io.ObjectInputStream.readExternalData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at org.jboss.proxy.Interceptor.readExternal(Interceptor.java 66) at java.io.ObjectInputStream.readExternalData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at org.jboss.proxy.Interceptor.readExternal(Interceptor.java 66) at java.io.ObjectInputStream.readExternalData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at org.jboss.proxy.ClientContainer.readExternal(ClientContainer.java 142) at java.io.ObjectInputStream.readExternalData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.defaultReadFields(Unknown Source) at java.io.ObjectInputStream.readSerialData(Unknown Source) at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source) at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at java.rmi.MarshalledObject.get(Unknown Source) at org.jnp.interfaces.MarshalledValuePair.get(MarshalledValuePair.java 57) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java 637) ... 4 more ふと思い出したが、client の jar ファイルの構成が変わっていたためにトラブルが あったような気がした。確かに実行ファイルにしても実行用の ant task にしても クラスパスに通す jar ファイルはハードコーディングしてある。 次の様なタスクを加えて実行すると正しく動作した。 target name="runclient" java classname="sample.client.CounterClient" fork="yes" dir="${build.classes}" classpath fileset dir="${jboss.home}/client" include name="**/*.jar"/ /fileset pathelement location="${build.classes}"/ /classpath /java /target runclient [java] log4j WARN No appenders could be found for logger (org.jboss.security.SecurityAssociation). [java] log4j WARN Please initialize the log4j system properly. [java] name=counter,value=2 直ったけれど、率直な感想としてもっとわかりやすいエラーにしてほしい。 ネストした例外をすべて出せるかどうかわからないが、jar ファイルが足りず エラーになるということは ClassNotFoundException が大本ではないの? とするとそのクラス名から jar ファイルが足りないという線は直ぐにでて きそうな物だが... Step 2 Web コンテナから実行する方法の解説 war file 次の様な構成をとる xxxweb.war # .war で終わればよい +- WEB-INF | +- web.xml +- classes/ # class files +- lib/ # jar files +- HTML, JSP, image file 等 web.xml ServletContext init param, session config, servlet/jsp name ビルド前の構成 │ build.xml │ ├─build │ ├─classes │ │ │ jndi.properties │ │ │ │ │ ├─META-INF │ │ │ ejb-jar.xml │ │ │ jboss.xml │ │ │ jbosscmp-jdbc.xml │ │ │ │ │ └─sample │ │ ├─ejb │ │ │ Counter.class │ │ │ CounterBean.class │ │ │ CounterHome.class │ │ │ │ │ ├─util │ │ │ CounterUtil.class │ │ │ │ │ └─web │ │ CounterServlet.class │ │ │ └─lib │ sample-ejb-client.jar │ step2-ejb.jar │ step2.war │ ├─lib │ javax.servlet.jar │ ├─resources │ jndi.properties │ └─src └─sample ├─ejb │ │ Counter.java │ │ CounterBean.java │ │ CounterHome.java │ │ │ └─META-INF │ ejb-jar.xml │ jboss.xml │ jbosscmp-jdbc.xml │ ├─util │ CounterUtil.java │ └─web │ CounterServlet.java │ index.jsp │ ShowCounter.jsp │ └─WEB-INF web.xml ant で build すると step1 相当の ejb.jar ファイルと war ファイルが deploy ディレクトリにコピーされる。 実行してみると (/step2 にアクセス) 初期画面は表示される物の カウンタを表示させようとするとエラーになる。 description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException sample.web.CounterServlet.doGet(CounterServlet.java 45) javax.servlet.http.HttpServlet.service(HttpServlet.java 697) javax.servlet.http.HttpServlet.service(HttpServlet.java 810) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java 81) root cause java.lang.ClassCastException com.sun.corba.se.impl.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java 229) javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java 137) sample.util.CounterUtil.getHome(CounterUtil.java 17) sample.web.CounterServlet.getNextCounter(CounterServlet.java 22) sample.web.CounterServlet.doGet(CounterServlet.java 37) javax.servlet.http.HttpServlet.service(HttpServlet.java 697) step1 を undeploy してみるが、効果なし。 client ライブラリを war ファイルに強引に追加すると deploy 時に仕様違反の エラーが発生。 これという解決策が見つからない。デプロイの仕方が悪いのではという意見もあった。 EJB を jar で クライアント部分を WAR で別々にデプロイするとまずいのだろうか? 古い版で試してみる。3.0.7 は 5.0 では実行できない。1.4 で実行は出来たが、 ビルドが失敗してしまう。3.2.0 を 1.4 で起動してみる。コンパイル、デプロイは 問題ない。 実行してみると 3.2.0 では確かに動く。 4.0.3 では異なる単位でデプロイされた EJB は参照できないということか? 処理の流れ index.jsp a href="CounterServlet" ... /a CounterServlet.doGet() getNextCounter() // Home interface を取得して EJB を取得 get home interface home.findByPrimaryKey(name) and return counter.getNextValue() // request の attribute に ejb の値をセットし、jsp にフォワード request.setAttribute(COUNTER_NAME, new Long(counter)) getServletContext().getRequestDispatcher("/ShowCounter.jsp") ShowCounter.jsp // スクリプトレットで値を取り出す。 %=request.getAttribute("counter")% step 3 EAR ファイルでのデプロイ xxapp.ear +- *.jar # EJB-JAR file +- *.war # WAR file +- META-INF +- application.xml application.xml ?xml version="1.0" encoding="UTF-8"? !DOCTYPE application PUBLIC "-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN" "http //java.sun.com/dtd/application_1_3.dtd" application display-name Counter application /display-name module ejb sample-ejb.jar /ejb /module module web web-uri sample.war /web-uri context-root /step3 /context-root /web /module /application 4.0.3SP1 ではやはり動かない... 4.0.3 の readme.html にある compatibility に関する記述を試してみる。 conf/jboss-service.xml mbean code="org.jboss.naming.NamingService" name="jboss service=Naming" !-- The call by value mode. true if all lookups are unmarshalled using the caller s TCL, false if in VM lookups return the value by reference. -- attribute name="CallByValue" true /attribute // SET TO TRUE !-- The listening port for the bootstrap JNP service. Set this to -1 to run the NamingService without the JNP invoker listening port. -- ... /mbean deploy/ear-deployer.xml server !-- EAR deployer, remove if you are not using ear deployments -- mbean code="org.jboss.deployment.EARDeployer" name="jboss.j2ee service=EARDeployer" !-- A flag indicating if ear deployments should have their own scoped class loader to isolate their classes from other deployments. -- attribute name="Isolated" true /attribute // SET TO TRUE !-- A flag indicating if the ear components should have in VM call optimization disabled. -- attribute name="CallByValue" true /attribute // SET TO TRUE /mbean /server では、STEP 2 はどうか? こちらも動くようになった。 4.0 ベースのサンプルというか、書き方を探す必要あり。 step 4 ENC (環境ネーミングコンテクスト) モジュール毎に JNDI 空間を割り当てる方法 "java comp/env" 詳細は面倒なのでまたの機会に 3章 Open Source による開発 Ant 特になし。 XDoclet ひとつの Bean クラスのソースから、各種インターフェイスの java source, ejb-jar.xml, jboss.xml, jbosscmp-jdbc.xml 等を生成。 /** * カウンターを表すエンティティBeanです。 * * @ejb.bean * name="Counter" * type="CMP" * jndi-name="ejb/step5/counter" * local-jndi-name="ejb/step5/counterLocal" * primkey-field="name" * * @ejb.finder * signature="Collection findAll()" * description="すべてのカウンターを返す" * * @ejb.persistence table-name="step5" * @ejb.persistence create-table="${jboss.create.table}" * @ejb.persistence remove-table="${jboss.remove.table}" */ public abstract class CounterBean implements EntityBean { .. * @ejb.interface-method * @ejb.persistent-field */ public abstract String getName(); /** * 名前 * * @param name 名前 */ public abstract void setName(String name); /** * カウンタ値 * * @return カウンタ値 * @ejb.interface-method * @ejb.persistent-field * @jboss.column-name name="cvalue" * use different column name for value property */ public abstract long getValue(); /** * カウンタ値 * * @param value カウンタ値 * @ejb.interface-method */ public abstract void setValue(long value); * @param name 名前 * @param value カウンタ値 * @return 名前 * @ejb.create-method */ public String ejbCreate(String name, long value) throws CreateException { if (name == null) { throw new CreateException("name is null"); } setName(name); setValue(value); return null; } ejbdoclet target の定義 !-- ==================== XDoclet ========================= -- target name="ejbdoclet" depends="init" delete dir="${build.gen}"/ mkdir dir="${build.gen}"/ !-- ejbdocletサブタスクの宣言 -- taskdef name="ejbdoclet" classname="xdoclet.modules.ejb.EjbDocletTask" classpathref="ejbdoclet.classpath"/ !-- ejbdocletの起動-- ejbdoclet destdir="${build.gen}" excludedtags="@version,@author,@todo" ejbspec="${ejb.version}" mergedir="${project.root}/xdoclet" force="${xdoclet.force}" !-- Beanクラスファイルの指定 -- fileset dir="${src.dir}" include name="**/sample/ejb/*.java"/ /fileset !-- リモートインタフェースの生成 -- remoteinterface/ homeinterface/ !-- ローカルインタフェースの生成 -- localinterface/ localhomeinterface/ !-- セッションBeanクラスの生成 -- session/ !-- データオブジェクトクラスの生成 -- dataobject pattern="{0}DTO"/ !-- エンティティCMPクラスの生成 -- entitycmp/ !-- entitypk/ -- !-- entityfacade/ -- !-- remotefacade/ -- !-- entitybmp/ -- !-- dao/ -- !-- ユーティリティクラスの生成 -- utilobject cacheHomes="true"/ !-- デプロイメント記述子の生成 -- deploymentdescriptor xmlencoding="${xml.encoding}" destdir="${build.dir}/META-INF"/ !-- JBossデプロイメント記述子の生成 -- jboss version="${jboss.version}" xmlencoding="${xml.encoding}" destdir="${build.dir}/META-INF" validateXml="false"/ /ejbdoclet /target XDoclet は何かとっつきにくく、得体が知れないところがあり、積極的には 使ってこなかった。とはいえ、web.xml 等を見慣れてきたとはいえ、そらで かけるわけではない。ここは慣れておいたほうがよさそう。 NetBean, Eclipse との連携 http //jboss.sourceforge.net/jbosside/updates DTD に基づいた自動補完機能は活用していきたい。いくつか書きたい DTD もあるし。 section 4 build build 出来るはずだが... BUILD FAILED E \ghjbossbook\samples\chap4\build.xml 120 E \ghjbossbook\samples\chap4 \${env.XDOCLET_HOME}\lib not found. http //xdoclet.sourceforge.net/xdoclet/index.html からダウンロードできるかとも思ったが、すでに展開してあったのでそこを指定。 conf/login-config.xml の変更 login、認証の種類、その付属情報の設定。このケースでは使用する DB の指定、 セレクト方法などを追加する。 load-data に -Dhsqldb.port=1701 port が 3.0.7 から変わったのかも 4.0.3 でもポートは 1701 の様だが、接続が出来ない。 BUILD FAILED E \ghjbossbook\samples\chap4\build.xml 358 java.sql.SQLException socket creati on error E \ghjbossbook\samples\chap4 java -cp c \usr\local\jboss\server\default\lib\hsqldb.jar org.hsqldb.util.DatabaseManager jdbc hsqldb hsql //localhost 1701 に接続しようとすると SQLException が 発生する。 DefaultDS で conf 以下を検索。 standardjbosscmp-jdbc.xml に気になる記述を 見つける defaults datasource java /DefaultDS /datasource !-- optional since 4.0 datasource-mapping Hypersonic SQL /datasource-mapping -- create-table true /create-table remove-table false /remove-table read-only false /read-only read-time-out 300000 /read-time-out 3.2.0 では defaults datasource java /DefaultDS /datasource datasource-mapping Hypersonic SQL /datasource-mapping create-table true /create-table remove-table false /remove-table read-only false /read-only 4.0.3 の datasource-mapping を有効にすることで直りそうだが、では、DefaultDS はどうなっているのか? JBoss のマニュアルをよく読まないと... コメントをはずしても依然として接続できない。 たしか、docs/examples/jca の下の *-ds.xml を元にデータソースの定義を deploy かどこかに作る必要があったはず。 hsqldb-ds.xml は deploy にあったが次の行がコメントになっていた。 コメントをはずす。 connection-url jdbc hsqldb hsql //localhost 1701 /connection-url しかし、それでもだめ。 起動時にクライアントサイドのコードが起動され SQLException に至る物が 多数表示されるようになった。 hsqldb-jdbc3-service.xml を deploy にコピーしてみてもだめ standardjbosscmp-jdbc.xml から datasource-mapping をはずす。 hsqldb-ds.xml から connection-url をはずす。 これで元に戻ったはず。 もう一度、関連する xml ファイルを見直してみる。hsqldb-ds.xml 後半に次の ようなブロックがある。 !-- This mbean should be used only when using tcp connections. Uncomment when the tcp based connection-url is used. mbean code="org.jboss.jdbc.HypersonicDatabase" name="jboss service=Hypersonic" attribute name="Port" 1701 /attribute attribute name="Silent" true /attribute attribute name="Database" default /attribute attribute name="Trace" false /attribute attribute name="No_system_exit" true /attribute /mbean -- standardjbosscmp-jdbc.xml で datasource-mapping を有効に、 hsqldb-ds.xml で connection-url を有効にし、上記ブロックも有効にする。 再起動すると今回は HSQLDB connect のスタックとレースは出ない。 DatabaseManager からもコネクトできる。 ここで、再度 ant load-data を実行。今度は成功! book-lib を再デプロイ console に EJB-QL のエラーがでた 01 11 15,027 WARN [ServiceController] Problem starting service jboss.j2ee jndiName=ejb/library/pass,service=EJB org.jboss.deployment.DeploymentException Error compiling EJB-QL statement ; - nested throwable (org.jboss.ejb.plugins.cmp.ejbql.ParseException FROM not found) at org.jboss.ejb.plugins.cmp.jdbc.JDBCEJBQLQuery. init (JDBCEJBQLQuery.java 52) at org.jboss.ejb.plugins.cmp.jdbc.JDBCCommandFactory.createEJBQLQuery(JDBCCommandFactory.java 60) at org.jboss.ejb.plugins.cmp.jdbc.JDBCQueryManager.start(JDBCQueryManager.java 272) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.startStoreManager(JDBCStoreManager.java 490) at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.start(JDBCStoreManager.java 381) ... ログインを試みると成功。 しかし、図書サービスは発注を除きすべてエラーになる。 exception javax.servlet.ServletException library.book.web.LibraryServlet.getDestinationPage(LibraryServlet.java 64) library.book.web.LibraryServlet.doGet(LibraryServlet.java 39) javax.servlet.http.HttpServlet.service(HttpServlet.java 697) javax.servlet.http.HttpServlet.service(HttpServlet.java 810) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java 81) root cause library.book.web.LibrarySystemException library.book.web.LibraryBusinessDelegate.listBooks(LibraryBusinessDelegate.java 137) library.book.web.ListBooksAction.perform(Configuration.java 113) library.book.web.LibraryServlet.performAction(LibraryServlet.java 73) library.book.web.LibraryServlet.getDestinationPage(LibraryServlet.java 60) library.book.web.LibraryServlet.doGet(LibraryServlet.java 39) public Collection listBooks() throws LibrarySystemException { try { return getBookSearch().listBooks(); --- ??? } catch (Exception e) { throw new LibrarySystemException(e); } } server.log からさかのぼると、たどることの出来るもっとも深い例外は java.rmi.ServerException EJBException ; nested exception is javax.ejb.EJBException null; CausedByException is Could not instantiate bean; CausedByException is createBeanClassInstanceCommand == null; CausedByException is Could not instantiate bean; CausedByException is createBeanClassInstanceCommand == null at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java 352) at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java 196) at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java 122) at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java 624) at org.jboss.ejb.Container.invoke(Container.java 873) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java 39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java 25) at java.lang.reflect.Method.invoke(Method.java 585) at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java 141) at org.jboss.mx.server.Invocation.dispatch(Invocation.java 80) at org.jboss.mx.server.Invocation.invoke(Invocation.java 72) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java 245) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java 644) at org.jboss.invocation.local.LocalInvoker$MBeanServerAction.invoke(LocalInvoker.java 155) at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java 104) at org.jboss.invocation.InvokerInterceptor.invokeMarshalled(InvokerInterceptor.java 201) at org.jboss.invocation.MarshallingInvokerInterceptor.invoke(MarshallingInvokerInterceptor.java 35) at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java 46) at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java 55) at org.jboss.proxy.ejb.StatelessSessionInterceptor.invoke(StatelessSessionInterceptor.java 97) at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java 86) at $Proxy87.listBooks(Unknown Source) at library.book.web.LibraryBusinessDelegate.listBooks(LibraryBusinessDelegate.java 135) at library.book.web.ListBooksAction.perform(Configuration.java 113) おそらく、EJB-QL の問題を解決すれば直るのだろうが、今日は時間切れ。 なれと経験の問題だろうが、何をやるにもわかりにくいし面倒くさい。
https://w.atwiki.jp/jpops/pages/8437.html
Super Boss M10をお気に入りに追加 Super Boss M10のリンク #bf Amazon.co.jp ウィジェット Super Boss M10の報道 gnewプラグインエラー「Super Boss M10」は見つからないか、接続エラーです。 Super Boss M10とは Super Boss M10の52%は運で出来ています。Super Boss M10の15%はハッタリで出来ています。Super Boss M10の14%は怨念で出来ています。Super Boss M10の9%は華麗さで出来ています。Super Boss M10の6%は白い何かで出来ています。Super Boss M10の3%は時間で出来ています。Super Boss M10の1%は波動で出来ています。 Super Boss M10@ウィキペディア Super Boss M10 Amazon.co.jp ウィジェット 掲示板 名前(HN) カキコミ すべてのコメントを見る ページ先頭へ Super Boss M10 このページについて このページはSuper Boss M10のインターネット上の情報を集めたリンク集のようなものです。ブックマークしておけば、日々更新されるSuper Boss M10に関連する最新情報にアクセスすることができます。 情報収集はプログラムで行っているため、名前が同じであるが異なるカテゴリーの情報が掲載される場合があります。ご了承ください。 リンク先の内容を保証するものではありません。ご自身の責任でクリックしてください。
https://w.atwiki.jp/ninjafuinden/pages/23.html
通常獲得素材 番号 名前 体力 術力 獲得経験値 獲得金 獲得可能素材 出現依頼 054 樹海天狗 880 124 480 180 樹下駄、樹扇 天狗退治!(BOSS) 016 巌猿 1200 80 460 90 岩猿の牙、岩猿の毛皮 猿の集団(BOSS) 030 鉱馬 1500 100 580 152 岩馬の尻尾、岩馬の鬣 馬の好物(BOSS) 089 悔恨武者 5800 150 2580 440 名刀の刃、名刀の切先、名刀の柄 亡霊武者(BOSS) 066 溺れ婆 7400 180 2900 540 包丁の破片、包丁の先端 水脈の鬼婆(BOSS) 065 火山ノ壱 4200 999 4700 450 包丁の破片、包丁の先端 火山に舞う鬼(中BOSS) 067 火山ノ弐 3000 300 4900 620 火の衣、火打ち石、炎の衣 火山に舞う鬼(中BOSS) 083 火山ノ参 6000 300 4400 200 炎の衣、火の衣 火山に舞う鬼(中BOSS) 072 火山ノ四 3500 300 4400 200 火魂殻 火山に舞う鬼(中BOSS) 022 炎狐 12000 250 8200 964 火狐の尻尾、火狐の毛皮 火山の狐(BOSS) 068 灼熱ノ鬼 18000 250 1080 1840 火の衣、火打ち石、炎の衣 火山の悪鬼(BOSS) 060 捨て猫又 45000 800 22222 2222 霊樹の生葉、霊力の石、体力の石 樹海の捨猫(BOSS) 固有獲得素材(獲得機会 多) 番号 名前 体力 術力 獲得経験値 獲得金 獲得可能素材 出現依頼 090 木鬼 960 50 800 120 鋭い枝 樹海に潜む鬼(BOSS) 092 土鬼 2700 100 2000 280 凝縮岩 岩場に巣食う鬼(BOSS) 100 水鬼 5600 200 3600 480 清か水 水脈を司る鬼(BOSS) 098 金鬼 7600 250 4800 1560 輝晶鉱 鉱山に輝く鬼(BOSS) 096 火鬼 8800 250 7000 960 千年灯 火山に舞う鬼(BOSS) 094 前鬼 8400 300 9600 1520 剛力像 ハイラズノ塔(中BOSS) 102 後鬼 9200 700 9400 1560 堅牢像 ハイラズノ塔(中BOSS) 084 嘆きの弟子 6400 250 3800 924 嘆きの魂 嘆きの声(BOSS)、樹海の捨猫 048 大悪河童 9800 250 4000 880 澱んだ大皿 甲羅の輝き(BOSS)、樹海の捨猫 023 狂気ノ狐 13600 450 5200 1080 狂気の尻尾 狐の思い出(BOSS)、不穏な妖気 077 悲哀ノ魂 5800 300 4980 840 武者の魂 彷徨う執念(BOSS)、不穏な妖気 029 悲哀ノ軍馬 10000 300 4900 740 軍馬の蹄 主従の誓い(BOSS)、不穏な妖気 091 木鬼の亡霊 10000 400 10800 980 鋭い枝 封印(中BOSS)、渦巻く妖気、謎の力 093 土鬼の亡霊 12000 400 11400 1120 凝縮岩 封印(中BOSS)、謎の力 101 水鬼の亡霊 11000 400 12200 1450 清か水 封印(中BOSS)、謎の力 099 金鬼の亡霊 10500 400 12400 1700 輝晶鉱 封印(中BOSS)、謎の力 097 火鬼の亡霊 12000 400 13000 2020 千年灯 封印(中BOSS)、謎の力 095 前鬼の亡霊 12400 400 14800 2200 剛力像 封印(中BOSS) 103 後鬼の亡霊 13600 750 14200 2380 堅牢像 封印(中BOSS) 固有獲得素材(獲得機会 1回) 番号 名前 体力 術力 獲得経験値 獲得金 獲得可能素材 出現依頼 107 操りイワト 3500 50 3600 0 操り水 鉱山に輝く鬼(中BOSS) 104 役小角 14800 600 28000 4800 役衣 ハイラズノ塔(BOSS) 105 悪之小角 30000 800 40000 8000 螺旋珠 封印(BOSS) 106 男之怨念 60000 999 54000 4800 迎夢炉、賦刀 不穏な妖気(BOSS)
https://w.atwiki.jp/smartphone-appli/pages/68.html
A mass of blocks flips and fades across your home screen! Swipe the screen and watch as the mass changes direction and more blocks fade in! Features Many options to determine how blocks flip, fade in or out, and what direction they travel! Change how many blocks you want and how their sizes vary! Control colors, lighting, and viewpoint positioning! Choose from several built-in themes to see a variety of configurations! Take screen shots of your creations and share them with your friends! Use the Randomize feature to come up with an infinite number of new themes! To enable more configuration features and save your themes, download Exodus Pro! If you like to change settings a lot, be sure to add the Exodus settings widget to your home screen (Home Menu Add Widgets Exodus). SD card permission required for screenshot saving. "Move to SD card" is enabled on Froyo (2.2) and up. Please note that if you use this feature for any live wallpaper, it will be disabled if you reboot or unmount your SD card. In this case, you will have to reselect Exodus for your live wallpaper. Widgets will also be disabled if you move to SD card. Please note Users of the following devices may experience crashes due to a graphics driver conflict. We are looking into the issue. MSM7227 600 MHz (ARMv6) - Alcatel OT-990 - Coolpad W706. - Garmin Asus M10 - HTC Legend - HTC Wildfire S - Huawei Pocket WiFi S II S41HW - Huawei Ideos X3 - Huawei Sonic U8650 - LG Optimus One P500 GSM - LG Optimus Chic - LG Optimus Me - LG Optimus chat L-04C - Mytouch 3G Slide - Samsung Galaxy Europa - Samsung Galaxy Fit - Samsung Galaxy Mini - Samsung Galaxy 551 - Sony Ericsson Xperia (All) - ZTE Blade MSM7227 Turbo 800 MHz (ARMv6) - Coolpad 7260. - HTC ChaCha - HTC Salsa - Huawei smart bar S42HW - LG Optimus Hub - LG Optimus Net - Odys Space - Samsung Galaxy Ace - Samsung Galaxy Gio - ZTE Skate
https://w.atwiki.jp/dsaba/pages/26.html
略称 正式名称 属性 規模 BOSS BOSSコーヒー 中立 30 人 主な活動内容はボス狩りです ボス狩りしたいけど野良PTは嫌だ 弱いからボスツアーに行きにくい ソロボス飽きた方 目当ての物が出るまで皆で狩りたい などなど 基本的に誰でも入れるFSなのでお気軽に声をかけて下さいな~ ケイアン :フェローシップマスター レンツィ Acer Firadie シオンナスィ HITACHILG NineHundred Sdorenah のらウサギ Larurin Keian Dwacelo Xitalandah Piex xみやびx みなずっキ Toele Eileava Leaylselia Verielie Mmanx Zacaracy Drgisy Brerle Giquerio Daistta keian koouu にくのぼう ミートくん
https://w.atwiki.jp/ayamamijatik/pages/10.html
paper.liの新聞 おすすめ10選プラス2 paper.liの猫新聞 paper.liのスポーツ新聞 paper.liのご当地新聞 福岡県 paper.liのご当地新聞 九州・沖縄(福岡以外) paper.liのご当地新聞 中国・四国 paper.liのご当地新聞 大阪府 paper.liのご当地新聞 兵庫県 paper.liのご当地新聞 京都府 paper.liのご当地新聞 近畿(滋賀・奈良・和歌山)
https://w.atwiki.jp/gcmatome/pages/6016.html
PAPERBOY 【ぺーぱーぼーい】 ジャンル シューティング 対応機種 アーケード 発売・開発元 アタリゲームズ 稼働開始日 1985年2月(北米)1985年10月(日本) 判定 良作 バカゲー 概要 システム バカゲー要素 評価点 問題点 総評 余談 概要 星の数ほどあるビデオゲームの中でも特に奇抜な、新聞配達を題材にしたゲーム。 プレイヤーは自転車に乗った新聞配達の少年を操作して新聞を配達していく。 システムはクォータビュー視点のシューティングゲームだが、スクロール方向が斜め前方なのに対し、弾を撃つ方向が横方向固定という独特なスタイルを持つ。 システム ゲーム開始時、配達エリア(難易度)を「EASY ST.」「MIDDLE RD.」「HARD WAY」から選択する。 どの道を選んでも一本道なので迷う事はない。 自転車のハンドルを模したコントローラーを操作する。 奥に(画面に向かって)倒せばスピードアップ、手前に引っ張れば減速。右に曲げれば右に、左に曲げれば左に曲がる。 強制スクロールで進む減速が実質的な後退操作となる。 ボタンを押す事で新聞を左側に向かって投げる。(建物は左側にしかない) 新聞を契約している家のポストか、玄関前に当てれば配達完了になる。 ステージ終了時、配達完了した家の数に応じてボーナススコアが貰える。 すべての家に配達すれば新たに契約する家が1軒ずつ増え、貰えるボーナススコアも2倍になる。逆に配達ミスした家は契約を打ち切られてしまう。 全7ステージ1周エンド。残機か契約件数が0にならないまま一週間新聞配達を行えばエンディングとなる。 新聞は残弾制。 道中で落ちている新聞の束を入手する事で初期数の10個まで補充する事が出来る。 道の端まで到達するとボーナスステージ「TRAININ COURSE」に挑戦する事が出来る。 様々なアスレチックギミックを上手く乗り越えてゴール地点に到達するとボーナス点が加算される。 ここまでくれば、ゴールするまではミスをしても残機が失われる事はなくなる。 バカゲー要素 新聞配達を題材にするという着眼点、道中で拾える新聞等、コンセプトデザインが既にバカバカしいが、本作最大の特徴は主人公を妨害するさまざまな街の人々である。 突然飛び出してくる人や路上でブレイクダンスに興じている人、包丁を持って追いかけてくるババア(!)、車、ラジコンカーや犬。果ては何の動力源もないのに動き出すタイヤや爆弾等、シュールな障害物が次々と新聞配達の邪魔をしてくる。 主人公が障害物や妨害者と接触するとミスになる。 主人公はそれらに対して新聞を投げつける事で応戦が可能。この新聞は非常に重いらしく、大抵の障害物を排除する事が出来る(*1)。 障害物以外にも建物の窓に投げ入れれば窓が割れ、墓に投げれば墓石が割れる。契約している家の窓を破壊すると契約が打ち切られるが、それ以外の家ならクラッシュボーナスとしてスコアがもらえる。 当然とはいえノルマをきっちり果たせなければ即クビなのに、こうした器物破損行為が全く問題にならないと言うのも、冷静に考えるとおかしい。 そして無法地帯の街中を駆け抜けた先でなぜか広がるアスレチック場を突破すると観客(?)の大歓声に迎えられる。果たして町の人たちはボーイの敵なのか味方なのかよくわからん展開である。 評価点 クラッシュボーナスの対象は結構多く、窓ガラス、墓石、空き巣(*2)、喧嘩をしている二人組、ゴミ箱、彫像等多岐にわたる。 適当に投げたら意外な物に当たって壊れ、スコアが増えたりする。 但しクラッシュボーナスを目当てにしていると「新聞の残弾数が少なくなり、いざ契約している家に投げ入れる新聞がない」という事態に陥るため、無駄撃ちしないよう精密射撃が要求される。 逆に節約するとあまりがちになる。この辺のバランスは絶妙。 一見難易度は高そうだが、「新聞配達をしなければならないわけではない」という事に気づくと難易度がかなり下がる。 新聞を配達しないと契約が切られてしまうが、入ってくるスコアが減少するだけなので、普通にプレイする分には大したデメリットではない。最初の一軒を確実に狙い撃って新聞を配達できれば、後はひたすら回避に専念することでとりあえずは1日クリアできる。 逆にハイスコアを狙うならきちんと精度良く配達し、残弾を補給しながらクラッシュボーナスも積極的に狙っていかなければならず忙しくなる。稼ぎ重視かクリア重視か、ということで、自分の腕に応じたプレイスタイルを取れる柔軟性も評価できる。 問題点 曲数が少なく、町の風景も配達コースによって大きく変わるような事が無く、地味。 クォータービュー視点に加えて「右下隅しか動けない」「横方向にしか弾が撃てない」「残弾制限がある」など操作性の制限がかなり激しい。 慣れない内は狙ったところに新聞紙を投げるのも障害物を避けるのも難しい。 総評 新聞配達を題材にする事で、シューティングゲームとしてもかなり奇天烈なものに仕上がっている。 一見すると地味な見た目ながら、この頃のゲームとしてはギミックも稼ぎ要素も豊富で、やりごたえは十分。 操作性はともかく、簡単にクリアする方法も、難易度の高いハイスコアルートを選ぶ事もできる。 それ以外の部分では、入力デバイスが自転車のハンドルを模しているという変わり種のコンパネ、妨害要素として街の人々がそろいもそろって主人公に牙を剥いてくると言う奇妙奇天烈な要素によって、おバカムードを醸し出しているのも実に海外ゲームらしくて面白い。 「新聞配達」というアイデアにここまでのゲーム性を付加しつつ、ただそれだけに留まらない独創性溢れるゲームに仕立て上げたセンスはさすがである。 余談 プレイ方法は多岐にわたるが、日本国内でのプレイ手段は限られている。 日本ではアーケード版以外にもファミコン版、メガドライブ版が出ているが、出回りの少なさや宣伝の少なさも相まってマイナーであり、全て稀少品。 逆にアメリカでは知名度は高く、GBやXboxと言ったメジャーハードをはじめとし、ZXスペクトラムやアムストラッドCPCといった、様々な家庭用機種やパソコンに移植されており。その数も25種類と過半数のハードに移植されている。 国内でもゲームボーイ版が発売予定だったが、発売中止となった。(参照) また、SNES/NES/GENESIS/GB/GG/各種PCでオリジナル続編である『PaperBoy 2』(Mindscape)が1991年にリリースされた。 1999年にはMIDWAY GAMESから3Dリメイクされた『PaperBoy』(N64)が発売されている。リメイクに当たりプレイヤーキャラに「ペーパーガール」が追加されている。 テレビゲームを題材にした映画『シュガー・ラッシュ』や『ピクセル』にも本作の主人公が登場しており、日米のゲーム知名度の違いを大きく感じる事のできるタイトルにもなっている。 日本国内におけるMD版の発売・開発元は、アタリ製業務用ゲームの作中テロップ(*3)や家庭用移植版の説明書における独創的過ぎる翻訳で有名なテンゲン(*4)である。 パッケージ裏に書かれたキャッチフレーズの「少年は思った。『働かなきゃ……働いて、働いて、有名になるんだ!』……そして、少年は新聞配達を始めた!!」は、その筋には色々な意味で有名。(*5) 本作品以外での新聞配達ゲーは、他にPS『コロコロポストニン』位かもしれない。 もっとも、システム的には本作との共通点はなく、むしろ『キャメルトライ』に近い。 本作のパロディ作としてはビデオ配達ゲー『ザ・ビデオキッド』がある。ゲーム性が似ているのはこちら。
https://w.atwiki.jp/sol-bibliomaniax/pages/113.html
【Papera】 「丈之助」 誰もいない薄暗い部屋で、少女が小さく名を呼んだ。 「……?」 何処からか気配もなく現れた少年は、訝しがりつつも無言で少女を見つめる。 「剣道を教えて!」 唐突な願い。それ自体はいつもの事だが、この少女が自ら進んで疲れる行為をするというのは不自然すぎる。 しかし、この少年が少女の行動を訝しがるはずもなく、何の反問もせずに受諾する。 「剣道なら別に難しくない。棒っぽいモノを持って、相手を叩いたり突いたり斬ったりすれば良いだけ」 しばしの沈黙。 「なるほど」 少女は納得して差し出された刀剣を受け取る。 「とりあえず、問答無用で攻撃すれば良いんだね★」 だが、少女にとってその剣は重すぎた。 「うにゃあ」 持ち上げられなかった刃は、コンクリートであるはずの地面を深々と抉るだけ。 「……何で?」 「私が聞きたいよー……」 少女は膨れ面で地面に座り込む。 少年が平然と腰に差していたはずの刀剣なのに、たったの1センチも持ち上げられない。 「んー……剣なんて振り回せば終わりなんだけど……」 「振り回せないもん」 「何で?」 「分かんないけど、持てない」 「んー……」 二人は地面に腰を下ろしたまま唸った。 この二人だけでは、重い物を持つために鍛えるとか、軽い物に変えるという事に意識が向かないのだ。 「……あ」 少年は少女を軽々と持ち上げて立ち上がらせ、そしてそのまま後ろから抱き締めるような格好で剣を握らせる。 「こうやって俺が持てば良い」 しばし思案。 「ホントだ! 持てた!」 わーいw と大喜びで振り回そうとする少女に合わせて少年が剣を動かす。 「でも、戦うのには向かないね……」 「それは心配ない。沙鳥が何かするより先に、相手は死んでるから」 「そっかーじゃあ、問題ないね!」 少女は満足そうに剣を振り回し、少年は黙々と合わせ続ける。 こうして、始終和やかな空気の中、殺人兵器による殺人講習は終わった。
https://w.atwiki.jp/rawdata/pages/33.html
ボス A hardened survivor of Neo-Shinjuku’s street gangs, Boss blasts robots into scrap with his trusty shotgun or bashes them to pieces with a literal iron fist. Dominator Shotgun This explosive pump-action shotgun also launches plasma grenades for some serious firepower. 左手を銃身の下にもっていきグリップボタンを押すと両手持ちに。 その状態で左手のトリガーを引くとグレネードを撃ち出す。 ショットガンを一発撃ったら左手のポンプアクションで弾送りが必要。 弾倉は肩のあたりで空の手をもっていきグリップボタンを押すことで弾倉を取り出す。 弾倉を銃身の上に近づけるとセット。 コメント Proximity Reloadを取るまでは使い勝手が悪すぎる - 名無しさん 2016-10-15 10 50 40 名前
https://w.atwiki.jp/mtgwiki/pages/1024.html
《Paper Tiger》 #whisper じゃんけんサイクルである3体のクリーチャーの一つ。 このクリーチャーは「紙」なので、「岩」であるRock Lobsterに勝ち、「ハサミ」であるScissors Lizardに負ける。 紙といっても、戦力にならないカードではないので注意。 ルール・テキストにカード名を表記する場合、自身を指すのでない限りは「〜という名前のクリーチャー」とするのが標準であるが、銀枠であるせいかこの規則には則っていない。 フレイバー・テキスト (日本語訳は あんかば カードリストより引用) The tiger is always quick to fold. この虎はいつでも早く折り上がる。 なかなかしゃれたフレイバー・テキストである。 "paper tiger" は、日本語で言う「張子の虎」という意味である。 一方 "fold" が自動詞として使われる場合は、「(ぺしゃんこに)潰れる」というような意味になる。 つまり、このフレイバーはダブル・ミーニングである。 参考 カード個別評価:Unglued系