之前在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!