glassfish 初次使用 (介绍・目录结构・注意点・基本命令・控制台・eclipse插件安装)

■前言

  ・初次接触glassfish,之前接触过 tomact(Apache),websphere(IBM)

■glassfish简介

  ・sun公司推测的一款web服务器,当然,现在已经是Oracle的了。

■glassfish常用命令

/glassfish4/glassfish/bin/

asadmin start-domain domain2
asadmin list-domains -l
asadmin stop-domain domain2

【坑】

               虽然,使用 「asadmin start-domain domain2」之后,显示正常执行了,

               但是,使用 「asadmin list-domains -l」命令时,显示 domain2 is not running // 加上 -l 可以显示详细信息

               这时,访问domain2中的APP,显示404,sever.log中有ERROR情报

               其实,这个时候,glassfish的domain2并没有成功启动,

               解决方法,重新「asadmin start-domain domain2」启动,多试几次,可以成功启动。

当端口被占用时,使用如下命令查找进程,并强制关闭
netstat -ano | find "4849"
taskkill /pid XXXX /F

■Linux操作时,注意点

======

1.启动的用户,一般不使用root用户启动

  通常使用glassfish自己的用户来启动。

 (使用root用户启动之后,一些文件会的所有中会变成root,

      比如:

     ・domains/domain/config/domain.xml

     ・applications下 war解压生成的目录,也是root权限

   要把这些用户的权限改回来,才能再次 使用 glassfish 用户正常启动)

2.注意查看log信息

  比如出现500,直接查看server.log

3.数据库的连接配置是否正确

     比如连接的 数据库 的 服务器,是否是当前环境的服务

4.是否有有已经写好的脚本

     通过 root 用户,直接调用脚本,来实现glassfish的启动・停止操作。

     // root 脚本中 sudo - glassfish

5.http Code

404:服务器无法找到对应资源 // 部署后的文件夹权限有问题时,会造成此问题

500:服务器内部错误 //  比如【数据库 不对 ; 或者数据密码不对】时,就会出现此问题
501:服务器不支持请求的函数
502:服务器暂时不可用,有时是为了防止发生系统过载
503:服务器正忙(web服务器不能处理HTTP请求,可能是临时超载或者是服务器进行维护) // domainN停止时

======

■目录结构

glassfish4

└glassfish

     └bin

           └asadmi

     └domains

            └domain1

                     └applications

                             └__internal

                                     └ProjectName

                                              └ProjectName.war

                            └ProjectName

                                     └ProjectName_war

                                              └WEB-INF

                                                      └classes

                                                                └リソース

                                                      └lib

                                     └ProjectName.war

                     └autodeploy

                            └ProjectName.war  // 要发布的war,放到这个位置

                            └ProjectName.war_deployed  // 发布成功之后,会生成一个 【0】 size 的文件

                     └Logs

                            └server.log

                                   ↑ 启动之后,如果有500的错误,在这里查看!

                     └config

                            └ admin-keyfile

         ↑管理员用户和密码 (密码保存的内容是,密码的HASH值)

                            └ domain.xml

                                         ↑端口号等情报设定

                                               domain2 一般默认为

                                                          8180 工程

                                                          4948   管理员

                                             search (key-word) :network-listener、port

            └domain2

            └domainN

■注意点(命令行启动)

1.  使用「asadmin start-domain domain1」命令之前,确保环境变量path中,配置了jdk的bin

2.解压缩后,即可直接使用,但是目录里面不能带有中文。

3.目录不要过长,否则某些文件会因为路径过长,从而解压缩失败,从而在服务器启动时造成各种问题。

    (建以直接在C盘根目录下解压)

以下内容与项目实际有关,仅供参考

ーーー

4.把服务器上运行的glassfish的内容直接压缩后,取到本地。(其他同事已经对应了。)

5.本次使用的安装包时,XXXXXX.tar.gz,看似是Linux下使用的东西,

     在win10的C盘下解压后,可以正常使用。

      (解压后的bin文件夹中,有bat文件,说明windows 系统 应该可以使用)

6.解压后自带的 domain1 可以正常使用

ーーー

7.不能删除Domain1 !!!

               ( 目录结构的 applications 中是有内容的,比如 重要的控制台,

                    出现:ThemeConfigurationException 异常

               这里面的内容,应该就是异常信息中所说的: 「主题 theme

    ----------------

  如果删除 domain1后,手动使用命令「asadmin create-domain domain1」建立domain1,

     这种做法,虽然可以成功建立domain1,

     使用 「asadmin start-domain domain1」命令行中,也能正常显示启动,

     但是从网页「localhost:8484」进入控制台时,会是一直等待的状态,

      从log中可以看到,说没有  「主题 theme

    ----------------

8.使用管理者权限启动命令行后,再在命令行中执行命令

    ----------------

   不使用管理者会有奇怪的问题发生,// 参照最上面【坑】相关的记述 

            比如,

               虽然,使用 「asadmin start-domain domain2」,可以正常启动,

               但是,使用 「asadmin list-domains -l」命令时,显示 domain2 is not running // 加上 -l 可以显示详细信息

                           使用 「asadmin stop-domain domain2」无法停止domain2,说domain2没有启动,    

   // 不使用管理员,也可以成功启动,但是有概率问题,不是每次都百分之百成功启动 !!!// 参照最上面【坑】相关的记述 

    ----------------

■注意点(Eclipse中,glassfish插件行启动)

0.【参考】对象工程,外面再包一层EJB

        【新規】

      ⇒【その他】

      ⇒【Java EE】

                             ⇒【エンタープライズ・アプリケーション・プロジェクト】

            (enterprise・Application・project)

1.本地数据库服务是否启动

         (如果有多个数据库(比如 mysql1,mysql2),启动对象数据库是否正确)

2.在eclipse中,

           移除 GlassFish服务器中的工程

3.clean工程

4.删除「domains\domainX\applications\」中已经发布的内容

 5.在eclipse中,

            GlassFish服务器中,添加要发布的工程

 6.启动 GlassFish

7.【参考】GlassFish Server设定:自動公開しない  (不自动公开)

8.【参考】GlassFish Server设定:time out 时间 :800秒

■相关命令

1.「asadmin start-domain domain2」 管理员端口号 4848

2.「asadmin stop-domain domain2」 管理员端口号 4948、运行web程序,是其他的端口号 (8180)

3.「asadmin list-domains domain2」

             可以查看每个domain的启动状况。

            ==========

               domain1 not runing

               domain2 running    // 注意,要使用admin在本地启动命令行,执行命令

                                             // 否则,即使成功启动,这里还是显示not running

                                                   // 同时,http:localhost:4849 也无法正常进入,

                                                            要么是一直等待,要么是出http 500的错误

                                            // 对应的端口也被一直占用(netstat -ano | find "4849")

                                            // (taskkill /f /pid XXXX)

               domain3 not runing

            ==========

---

■进入控制台

 localhost:4848

    「asadmin start-domain domain1」命令之后,会告诉你控制台的端口号,

       不同的domain端口号是不相同的。

■发布并运行web服务(加载war)

前言,在eclipse中的操作,有管理者权限,正常启动eclipse即可

   安装相应的插件

      ・glassfish的插件:Eclipse GlassFish Tools

              ・插件下载

                       https://download.eclipse.org/glassfish-tools/1.0.0/?d

        https://download.eclipse.org/glassfish-tools/1.0.1/

                ・安装

                       Eclipse插件安装之,使用(已经下载的zip)安装包直接安装插件(例:glassfish 插件 plugin)_sun0322的博客-CSDN博客_eclipse安装zip插件

   ・sapphire的插件: Sapphire XML Editor Support  //应该没有用,不安装也许能运行

   【help】 ⇒ 【新規ソフトウェアのインストール】 ⇒【追加】

   出来的对话框中,「位置」中,选择本地插件zip的保存路径,然后安装

方法1:

  在控制台中进行操作。

     注意: 端口号与控制台的端口号是不相同的。

                 这一点与tomcat不同,但是与 websphere类似

=== 控制台界面 start

Domain

Server(Admin Server)

。。。

Nodes

Applications  ⇒ 选择web工程 (checkbox),点击「Deploy」

Licecycle Modules

。。。

===控制台界面 end

方法2:

■数据源配置

待续。。。

■课题解决

cannot Deploy [YourProjectName]

[YourProjectName] is not deployed

Step1.

外面再包一层  (tomcat不用,websphere也要包一层)

  【新規】

   ⇒【その他】

      ⇒【Java EE】

                             ⇒【エンタープライズ・アプリケーション・プロジェクト】

            (enterprise・Application・project)

Step2.

在Eclipse中无法将应用程序部署到Glassfish 4.1 - IT屋-程序员软件开发技术分享社区

通过以下方式找到使用JAR归档进行部署:
右键单击eclipse服务器选项卡上的glassfish。然后,在新窗口中选择监控> 属性> Glassfish > 使用JAR存档进行部署

即:Use JAR archiives for deployment(J)

(这里有两个复选框,上面的,复选框,也选中

     最デプロイメントにまたがリセッションを保持(V)

Step3.

修改deploy的具体设置

     右键点击工程

         ⇒デプロイメント・アセンブリ

  只发布你想要发布的内容

step4.

    修改glashfish的启动时间,修改到500秒左右。

step5.

  确保 对应的端口已经关闭

  比如domain2是 4948 端口

   查看端口 netstat -ano | find "4948"

  并得到pid,通过pid关闭进程

  (taskkill /f /pid XXXX)

step6.

删除 glassfish 发布目录下面的 内容

    domain2

    └applications

           └__internal   //存放war包的目录

                   └XXXWeb  // (step1 中建立工程的名字)

                         └XXXWeb.ear

           └XXXXWeb  // (step1 中建立工程的名字)

                └TTTTWeb_war // 工程的名字

                └TTTTWeb.war // 工程的名字    

                      └WEB-INF

                            └ classes  //根据 上述step3中的配置发布

          └lib        //根据 上述step3中的配置发布,是maven关联的jar包

---

step7.IE中,运行程序

http://localhost:8180/TTTTWeb          // 工程的名字

但是,通过

http://localhost:4849   

进入glassfish管理者画面时,报500的错误

---

     

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值