1、启动JBoss时报错,ERROR [AbstractKernelController] Error installing to Instantiated: name=AttachmentStore state=Described…
进入目录 server/default/conf/bootstrap,打开文件 profile.xml,找到
<!-- The attachment store -->
<bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">
<constructor><parameter><inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" /></parameter></constructor>
<property name="mainDeployer"><inject bean="MainDeployer" /></property>
<property name="serializer"><inject bean="AttachmentsSerializer" /></property>
<property name="persistenceFactory"><inject bean="PersistenceFactory" /></property>
</bean>
把
<parameter><inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" /></parameter>
改为
<parameter class="java.io.File"><inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" /></parameter>
即添加class=”java.io.File”,保存并重启JBoss即可。这个问题在JBoss5.0版本以前似乎不会遇到。
2、运行EJB程序时抛异常:java.lang.ClassCastException: $Proxy96 cannot be cast to com.tgb.ejb.EJBHelloRemote……
解决方案:在JBoss服务器的jboss-4.2.2.GA\server\default\deploy\jboss-web.deployer\META-INF路径下找到jboss-service.xml文件,把<attribute name="UseJBossWebLoader">false</attribute>
的false改为true,重启JBoss,问题解决。
3、客户端使用EJB最好以project的方式引入,即右键项目->Build Path->Configure Build Path->Projects->Add->选择需要使用的EJB项目确定。虽然可以先将EJB打包成jar,然后引入,但这种方式会出现很多问题,而且每次更新代码再次部署后也会出现很多意想不到的情况,本人也是经过很多次失败才发现这个问题。
本人原来是通过jar引入EJB,出现的几个问题如下:
①部署项目时部署出抛出javax.management.InstanceAlreadyExistsException异常
②修改代码后重新部署,无法访问或者内容不变
③修改EJB代码后,客户端代码无法识别,导致代码本身报错
以上问题在使用project方式引入后都得以解决,仅供参考。