glassfish安装mysql数据库connector/J

时间:2021-08-11 19:06:53

之前在tomcat上成功安装了mysql数据库的jdbc

现在我一直在学习和使用glass fish,要用到持久层的话,还是得安装jdbc的库。

所以就进行了mysql库的安装。

版本:glassfish4.1.1,mysql-connector-java-5.1.37-bin.jar, 电脑版本,macOS captain.

想到的方法是:

1.百度。万能的百度有时候有不是万能的,结果太多,抄袭成风,估计都没有试过吧。

还有就是版本太多,可能已经不适合心版本了(不过并不是一无是处,有些资料作为参考还是挺好的)

2.查阅glassfish.官方文档

3.查阅mysql的官方文档

总结2,3的方法都是用控制台http://localhost:4848/,但在新增pool的时候无论怎么调都会提示出错。


HTTP Status 500 - Internal Server Error

xception

java.lang.IllegalStateException: getOutputStream() has already been called for this response


那继续baidu吧。

发现有人用xml文件配置的方法。但要配置至少2个文件。博主写的有点乱,那些事新增代码都没直接指明。

但有个信息可以发现,有配置jdbc的xml模版,先去瞧瞧先。

在AS_INSTALL_DIR/glassfish/lib//install/templates/resources/jdbc下真的有模版mysql_type4_datasource.xml还有个README, 打开瞧一瞧吧:哇咔咔,发现了新大陆:

1)  copy the jdbc-driver to AS_INSTALL_DIR/domains/<DOMAIN_NAME>/lib/ext

2)  restart appserver

3)  edit the appropriate jdbc-driver template to fill username, password, hostname, databasename, portnumber etc.,

3a) [Optional] select appropriate resource-type & datasource-classname. Templates are provided with the list of

    datasource-classnames for respective resource-types of the jdbc-vendor, if available.

4)  asadmin add-resources jdbc-driver-template.xml (eg: AS_INSTALL_DIR/lib/install/templates/resources/jdbc/javadb_type4_datasource.xml)

5)  asadmin ping-connection-pool connection-pool-name


好像按照此配置酒可以,不用网上说的那么复杂。

那就试试呗,但像我这种菜鸟,万一改了恢复不回去怎么办,那就cp复制一份出来吧。

然后修改的位置文件,内容如下:

<resources>

<jdbc-connection-pool

name="mysql-pool"

datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"

res-type="javax.sql.DataSource">

<property name="user" value="root"/>

<property name="password" value=“rootZhangHuDeMySQLmima”/>

<property name="url" value="jdbc:mysql://localhost:3307/star_stock"/>

</jdbc-connection-pool>



<jdbc-resource

enabled="true"

jndi-name="jdbc/mysql-resource"

object-type="user"

pool-name="mysql-pool"/>

</resources>


修改完成。操作成功,好像ping不通,复查了下,哇咔咔。localhost忘记修改了。修改后重新来一遍,虽然提示成功还是不行。那回去看看http://localhost:4848/有什么变化吧,卡卡,在这里原来设置是吧的东西,居然现在有内容了,在树jdbc-connection-pool这修改配置。然后重复第四步ping一下,成功了。(默认的mysql端口号是3306,我的是3307)

为了确定成功了,那做个网页试试,抄了connector/j 的简单例子,修改其中的jdbc,数据库中插入表,数据,成功。


well done!