1、JBOSS 5.1使用 jdk 1.7 会报错,换成6就好了
2、使用JBOSS 5.1 在 Eclipse 下创建 EJB 项目,EJB Module version只有2.0,2.1和3.0可选,没有3.1
3、Could not obtain connection to any of these urls: localhost:1099
原因:jboss未启动
4、javax.naming.NameNotFoundException: MySqlDS not bound
修改 D:\program\jboss-eap-5.0\jboss-as\server\default\deploy 下的 mysql-ds.xml
在<jndi-name>MySqlDS</jndi-name> 后面加入
<use-java-context>false</use-java-context>
JBoss默认将数据源绑定在本地JNDI命名空间下,所以不能从JBoss运行的JVM之外查找到改数据源,要解决这个问题就是配置JBoss将数据源绑定在全局命名空间下
更简单的办法是改成<jndi-name>java:/MySqlDS</jndi-name>
这两个办法只能选择一个,如果同时使用还是会报错
5、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的用户名和密码)
把这个拦截器注释掉即可
6、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>
7、 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 加了个@
8、需要将数据库的jdbc驱动包放到D:\program\jboss-eap-5.0\jboss-as\server\default\lib 目录下
否则驱动注册失败
9、jboss在MyEclipse下启动报错
Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/bootstrap/BaseServerConfig
解决办法:修改MyEclipse下JBoss的JDK选项,选择自己安装的jdk1.6,不选用默认的1.7。
10、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,重启后生效
11、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>
是新增的配置