一、JBOSS 5.1使用 jdk 1.7 会报错,换成6就行了java
二、使用JBOSS 5.1 在 Eclipse 下建立 EJB 项目,EJB Module version只有2.0,2.1和3.0可选,没有3.1mysql
三、Could not obtain connection to any of these urls: localhost:1099web
缘由:jboss未启动spring
四、javax.naming.NameNotFoundException: MySqlDS not boundsql
修改 D:\program\jboss-eap-5.0\jboss-as\server\default\deploy 下的 mysql-ds.xml数据库
在<jndi-name>MySqlDS</jndi-name> 后面加入bootstrap
<use-java-context>false</use-java-context>tomcat
JBoss默认将数据源绑定在本地JNDI命名空间下,因此不能从JBoss运行的JVM以外查找到改数据源,要解决这个问题就是配置JBoss将数据源绑定在全局命名空间下session
更简单的办法是改为<jndi-name>java:/MySqlDS</jndi-name>oracle
这两个办法只能选择一个,若是同时使用仍是会报错
五、jboss的执行关闭时报错:
Exception in thread "main" java.lang.SecurityException: Failed to authenticate principal=null, securityDomain=jmx-console
由于在deploy目录下的jmx-invoker-service.xml中有下面这么一句:
<interceptor code="org.jboss.jmx.connector.invoker.AuthenticationInterceptor"
securityDomain="java:/jaas/jmx-console"/>
这个拦截器在jboss EAP中默认是打开的,也就是说默认必须设置jmx-console的用户名和密码,而且用shutdown.sh -s 127.0.0.1:1099 -u admin -p admin才能关闭(-u -p 后面的就是jmx-console的用户名和密码)
把这个拦截器注释掉便可
六、You have not defined a jta-data-source for a JTA enabled persistence context named
persistence.xml文件中persistence-unit标签下没定义了这个<jta-data-source>java:/MySqlDS</jta-data-source>
七、 The Network Adapter could not establish the connection
jdbc:oracle:thin:10.8.12.78:1521:ORCL 改为
jdbc:oracle:thin:@10.8.12.78:1521:ORCL 加了个@
八、须要将数据库的jdbc驱动包放到D:\program\jboss-eap-5.0\jboss-as\server\default\lib 目录下
不然驱动注册失败
九、jboss在MyEclipse下启动报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/bootstrap/BaseServerConfig
解决办法:修改MyEclipse下JBoss的JDK选项,选择本身安装的jdk1.6,不选用默认的1.7。
十、jboss启动后只能经过localhost或者127.0.0.1来访问,不能经过ip来访问
解决办法:修改C:\Program\jboss-eap-5.0\jboss-as\server\default\deploy\jbossweb.sar下的server.xml
<!-- A HTTP/1.1 Connector on port 8080 --> <Connector protocol="HTTP/1.1" port="8080" address="${jboss.bind.address}" connectionTimeout="20000" redirectPort="8443" /> <Connector protocol="AJP/1.3" port="8009" address="${jboss.bind.address}" redirectPort="8443" />
将${jboss.bind.address}修改成0.0.0.0,重启后生效
十一、tomcat上能够正常跑的项目到jboss上报错:
org.hibernate.AnnotationException: java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator<init>
解决办法:
<!-- Hibernate配置 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="namingStrategy"> <bean class="org.hibernate.cfg.ImprovedNamingStrategy" /> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">${hibernate.show_sql}</prop> <prop key="hibernate.format_sql">${hibernate.format_sql}</prop> <prop key="hibernate.connection.release_mode">after_transaction</prop> <prop key="hibernate.validator.apply_to_ddl">false</prop> <prop key="hibernate.validator.autoregister_listeners">false</prop> <!-- <prop key="hibernate.hbm2ddl.auto">create-drop</prop> --> </props> </property> <property name="packagesToScan"> <list> <value>org.snaker.framework.security.entity</value> <value>org.snaker.framework.form.entity</value> <value>org.snaker.framework.dictionary.entity</value> </list> </property> <property name="mappingResources"> <list> <value>hbm/snaker.task.hbm.xml</value> <value>hbm/snaker.order.hbm.xml</value> <value>hbm/snaker.ccorder.hbm.xml</value> <value>hbm/snaker.process.hbm.xml</value> <value>hbm/snaker.taskactor.hbm.xml</value> <value>hbm/snaker.workitem.hbm.xml</value> <value>hbm/snaker.surrogate.hbm.xml</value> </list> </property> </bean>
其中:
<prop key="hibernate.validator.apply_to_ddl">false</prop> <prop key="hibernate.validator.autoregister_listeners">false</prop>
是新增的配置