今天在Eclipse中啟動JBoss 5.1時遇到這樣的一個錯誤:
……
ERROR [AbstractKernelController] Error installing to Instantiated: name=AttachmentStore state=Described
java.lang.IllegalArgumentException: Wrong arguments. new for target java.lang.reflect.Constructor expected=[java.net.URI] actual=[java.io.File]
……
DEPLOYMENTS IN ERROR:
Deployment "AttachmentStore" is in error due to: java.lang.IllegalArgumentException : Wrong arguments. new for target java.lang.reflect.Constructor expected=[java.net.URI] actual=[java.io.File]
從錯誤信息中,就知道是 AttachmentStore 的一個參數錯誤。
解決方法倒很簡單,只要修改一下 profile.xml(JBOSS_HOME\server\default\conf\bootstrap\profile.xml) 中的 AttachmentStore 設置就可以了。在該文件中,你可以找到:1: <bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">2: <constructor>3: <parameter>4: <inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" />5: </parameter>6: </constructor>7: <property name="mainDeployer"><inject bean="MainDeployer" /></property>8: <property name="serializer"><inject bean="AttachmentsSerializer" /></property>9: <property name="persistenceFactory"><inject bean="PersistenceFactory" /></property>10: </bean>
只需將它改為:
1: <bean name="AttachmentStore" class="org.jboss.system.server.profileservice.repository.AbstractAttachmentStore">2: <constructor>3: <!-- 修改這里 -->4: <parameter class="java.io.File">5: <inject bean="BootstrapProfileFactory" property="attachmentStoreRoot" />6: </parameter>7: </constructor>8: <property name="mainDeployer"><inject bean="MainDeployer" /></property>9: <property name="serializer"><inject bean="AttachmentsSerializer" /></property>10: <property name="persistenceFactory"><inject bean="PersistenceFactory" /></property>11: </bean>