版本:jboss-as-7.1.0.Final
使用standalone
一、基本配置
1、下载直接解压使用。
2、配置环境变量
JBOSS_HOME
值为:D:\java\jboss\jboss-as-7.1.0.Final 即,jboss的路径。
3、在环境变量path?的最后加上,;%JBOSS_HOME%\bin【没有环境变量path的,就新建一个。】
4、启动---D:\jboss-as-7.1.0.Final\bin\standalone.bat
5、添加管理员---D:\jboss-as-7.1.0.Final\bin\add-user.bat
二、配置数据源【mysql】
1、在D:\jboss-as-7.1.0.Final\modules\com目录下,创建目录mysql\main
2、加入驱动:mysql-connector-java-5.0.8-bin.jar(可从网上下载)
3、创建配置文件module.xml
<module?xmlns="urn:jboss:module:1.1"?name="com.mysql">??
<resources>?
<resource-root?path="mysql-connector-java-5.1.15-bin.jar"/>?<!--替换mysql的jdbc包-->?
</resources>?
<dependencies>?
<module?name="javax.api"/>?
<module?name="javax.transaction.api"/>?
<module?name="javax.servlet.api"?optional="true"/>?
</dependencies>?
</module>
4、在D:\jboss-as-7.1.0.Final\standalone\configuration目录下,打开standalone.xml文件,添加mysql数据源:---<datasources></datasources>
<datasource jta="true" jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
<connection-url>jdbc:mysql://192.168.0.29:3306/ucs?useUnicode=true&characterEncoding=UTF-8</connection-url>
<driver>mysql</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="com.mysql">
<driver-class>com.mysql.jdbc.Driver</driver-class>
<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
</drives>
</datasources>
5、启动jboss,如果数据源配置成功会自动生成一个【mysql-connector-java-5.0.8-bin.jar.index】文件。
打开jboss控制台查看Datasources,如果不报错即成功。
注意:mysql驱动需要和mysql数据库的版本对应,不要无法链接起来。
三、项目发布的配置【spring4+struts2+ejb[hibernate4]】
四、修改JBoss-7.1.0 http访问端口并取消JBoss访问限制【jboss-as-7.1.0.Final/standalone/configuration/standalone.xml】
1、jboss-as-7.1.0.Final/standalone/configuration/standalone.xml文件,将 port="8080" 改为 port="80" 并重启JBoss即可。
【注: port:访问端口,默认是8080,这就是为什么上面我们在访问http://localhost:8080/hyddd.html时,需要加“:8080”这东西了,把它改为80,访问网页时就可以不加端口号了,如:http://localhost/hyddd.html(当然,你要继续加上端口号访问也是可以的,如http://localhost:80/hyddd.html)】
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="http" port="80"/>
<socket-binding name="https" port="8443"/>
<socket-binding name="management-native" interface="management" port="${jboss.management.native.port:9999}"/>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9443}"/>
<socket-binding name="osgi-http" interface="management" port="8090"/>
<socket-binding name="remoting" port="4447"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="localhost" port="25"/>
</outbound-socket-binding>
</socket-binding-group>
2、将 <interface name="public">的子节点改为 <any-ipv4-address/> 即可。
<interfaces>
<interface name="management">
<inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
</interface>
<interface name="public">
<any-ipv4-address/> <!-- 替换这个即可 -->
</interface>
</interfaces>
五、将你项目打成war包,部署到jboss服务器上,启动------一堆问题----具体问题具体分析
错误1:java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;
解决办法
原因:因为在jboss上本身自带hibernate-jpa-2.0,所以在jboss运行的时候会使用该包,而本项目使用的包是 hibernate-jpa-2.1。运行时不用调用到该包。
办法:
1、把hibernate-jpa-2.1-api-1.0.0.final.jar拷贝到jboss-as-7.1.0.Final/modules/javax/persistence/api/main目录下;
2、修改 module.xml<resource-root path="hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
3、jboss重新打开并编译。