JBOSS 5.x 笔记

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>

是新增的配置

你可能感兴趣的:(JBOSS 5.x 笔记)