Blog 应用程序包里共有 5 个 bundle,但是只需要其中的四个就可以运行这个程序,因为第五个 bundle 是持久化 bundle 的更新版本,主要是用来演示如何去动态更新 OSGi bundle 的。另外,要想使 Blog 应用正常运行,还有两个与日志相关的 bundle,这两个 bundle 需要事先导入到 WAS 的内部 bundle 存储库里。以上所提到的所有资源被放在 blogSamplezip 文件中的 installableApps 文件夹里。这些 bundle 是按功能划分的:
comibmsampleswebsphereosgiblogpersistence, 包含了和持久化相关的代码,同时也提供了一些接口,可以被主程序用来执行博客更新和查询功能。
comibmsampleswebsphereosgiblog_100,是 Blog 应用的主程序,包含了主要的业务逻辑代码,并负责和前端 web 层与后端持久化层的交互。
comibmsampleswebsphereosgiblogweb,借助 html、css 等完成前端显示的功能。
comibmsampleswebsphereosgiblogapi,包含 Blog 应用所需要的 API。
comibmsampleswebsphereosgiblogpersistence_110,是持久化 bundle 的更新版本,新增了对博客文章的评论服务。
Blog 提供了两种部署方式,一种是利用脚本进行完整的部署,另一种是先用脚本做一些初始的配置,如数据源的配置,然后再用 WAS 管理控制台或命令行方式去安装 Blog 应用。在部署成功以后,我们还可以对应用进行使用、维护、拆卸以及更新 *** 作。在本文中,我们使用第二种方式来部署 Blog 应用。
在 WAS V8 中配置 Blog 应用所需资源
安装 Blog 应用包含两个部分,一部分是配置 Blog 应用所需的资源,例如建立数据库、配置数据源等;另一部分是利用 WAS 管理控制台或者命令行工具安装 Blog 应用到 WAS 上。在这里我们先介绍第一部分,第二部分穿插在后续的 WAS 对 OSGi 应用部署和管理功能介绍的篇章中。
我们使用脚本配置 Blog 应用所需的资源,这些脚本存放在 blogSamplezip 中的 scripts 目录里。其中,createBlogDbsql 用来创建所需的 Derby 数据库和相关数据库表,blogSampleInstallpy 包含了一些 Jython 命令用来创建数据源,以及以默认的方式安装 Blog 应用。
使用脚本配置 Blog 应用
使用如下命令创建和配置 Derby 数据库(BLOGDB)以及相关数据库表
对于 Unix 系统
app_server_root/derby/bin/embedded/ijsh scripts/createBlogDbsql
对于 Windows 系统
app_server_root\derby\bin\embedded\ijbat scripts\createBlogDbsql
使用如下命令创建数据源
对于 Unix 系统
app_server_root/profiles/profileName/bin/wsadminsh
-f scripts/blogSampleInstallpy setupOnly serverName nodeName
对于 Windows 系统
app_server_root\profiles\profileName\bin\wsadminbat
-f scripts\blogSampleInstallpy setupOnly serverName nodeName
运行完上述命令后,可以登录到 WAS 控制台查看刚刚创建的数据源。导航到 Resources > JDBC > Data sources 面板:
部署你的 OSGi 应用
管理 bundle 存储库
在上文我们提到 comibmsampleswebsphereosgiloggingapijar 和 comibmsampleswebsphereosgiloggingimpljar 这两个 bundle 是 Blog 应用正常运行所不可或缺的,在安装 Blog 应用之前,需要先将这两个 bundle 导入到 WAS 的 bundle 存储库中。在这一节我们就介绍如何去管理 WAS 的 bundle 存储库。
不同的 OSGi 应用之间可以共享很多通用的 bundle,为了简化对共享 bundle 管理工作以及避免每一个 OSGi 应用都单独的去维护这些 bundle,WAS 提出了 bundle 存储库的概念。共享的 bundle 或者组合 bundle 以及第三方类库的 bundle 都可以事先导入到 bundle 存储库中,每一个 OSGi 应用只需声明对这些 bundle 的引用就可以很方便的使用 bundle 存储库里的 bundle。WAS 的 bundle 存储库包括内部存储库和外部存储库,前者是将共享的 bundle 保存在本地,而后者则可以通过添加链接(名字和 URL)使用外部的 bundle。
管理内部 bundle 存储库
使用 WAS 管理控制台管理内部 bundle 存储库
管理员可以使用 WAS 管理控制台查看已导入的 bundle 以及 bundle 的详细信息,还能通过管理控制台向存储库添加和从存储库删除 bundle。
启动 WAS 管理控制台
导航到 Environment > OSGi bundle repositories > Internal bundle repository 页面在页面中显示的列表就是已经导入到 bundle 存储库里的 bundle,如果是第一次使用,则会显示如下空白页面:
在 bundle 存储库页面可以添加、删除 bundle 或者显示 bundle 详细信息
添加单一 bundle 或者合成 bundle 到存储库
点击 New,将显示上传 bundle 的页面
在对话框里输入 bundle 或者合成 bundle 所在的路径
点击 OK,所指定 bundle 或者合成 bundle 就会被上传到 bundle 存储库
对于 Blog 应用:重复上面的 *** 作,添加 comibmsampleswebsphereosgiloggingapijar 和 Comibmsampleswebsphereosgiloggingimpljar 到存储库中。如下图所示:
删除存储库里的 bundle,首先选中需要删除的 bundle,然后点击 Delete 即可完成 *** 作
查看 bundle 的详细信息,点击 bundle 的名字就可以进入到 bundle 的详细信息页面
图 5 Bundle 详细信息
在完成添加和删除 *** 作以后,需要保存修改到主配置文件中。
使用命令行管理内部 bundle 存储库
使用 wsadmin 命令行工具可以实现 bundle 的添加、删除、列表以及显示详细信息 *** 作。由于 wsadmin 默认使用的脚本语言是 jacl,而我们使用的都是 jython 脚本或者命令,所以我们首先要将 wsadmin 的默认脚本语言修改为 jython,方法是编辑如下文件:<profile_root>\<profile_name>\properties\wsadminproperties,修改"comibmwsscriptingdefaultLang=jython"
导航到 <profile_root>\<profile_name>\bin 目录,启动 wsadmin 命令行工具:
添加单一 bundle 或合成 bundle 到内部存储库
使用 addLocalRepositoryBundle 命令添加 bundle 到存储库,命令格式如下:
AdminTaskaddLocalRepositoryBundle('-file path')
该命令中只有一个参数 file,用来指定你要添加的 bundle 的路径,对于 Blog 应用,我们用如下命令依次添加上文提到的两个和 log 相关的 bundle:
AdminTaskaddLocalRepositoryBundle('[-file "C:\\blogSample_v8\\blogSample\\installableApps
\\comibmsampleswebsphereosgiloggingimpljar"]')
AdminTaskaddLocalRepositoryBundle('[-file "C:\\blogSample_v8\\blogSample\\installableApps\
\comibmsampleswebsphereosgiloggingapijar"]')
AdminConfigsave()
添加完以后,登录 WAS 管理控制台,导航至 Internal bundle repository 页面,您将看到两个 bundle 已经被成功添加,如图 4 所示。
显示已添加到存储库里的 bundle 列表
使用 listLocalRepositoryBundles 命令来显示已经添加成功的 bundle 列表,命令格式如下:
AdminTasklistLocalRepositoryBundles()
显示 bundle 的详细信息
使用 showLocalRepositoryBundle 命令来显示 bundle 信息,命令格式如下 :
AdminTaskshowLocalRepositoryBundle( ’ -symbolicName bundle_symbolic_name
-version bundle_version ’ )
两个参数分别是要显示 bundle 的名字和版本信息。
将 bundle 从存储库删除
使用 removeLocalRepositoryBundle 或则 removeLocalRepositoryBundles 命令删除一个或多个 bundle,命令格式如下:
AdminTaskremoveLocalRepositoryBundle( ’ -symbolicName bundle_symbolic_name
-version bundle_version ’ )
AdminTaskremoveLocalRepositoryBundles([
’
bundle1_symbolic_name;bundle1_version
bundle2_symbolic_name;bundle2_version
bundle3_symbolic_name;bundle3_version ’
])
管理外部 bundle 存储库
对于外部 bundle 存储库,WAS 同样提供了管理控制台和命令行两种管理方式,并且对于外部库的控制和内部库的控制类似。在这里我们就不多加介绍,有兴趣的读者可以阅读本文末参考资料了解更多详细信息。
首先,请检查WAS服务是否正常启动,确认服务是否可以正常访问。如果服务无法正常访问,可以尝试重新启动WAS服务;如果服务正常,可以尝试检查服务器上的防火墙设置是否正确,并且要确认浏览器能够正确访问WAS服务端口。
以先用tasklist找出javamail的PID,然后找出netstat与上述PID对应的端口号
Process pro=RuntimegetRuntime()exec("cmdexe /c tasklist")
BufferedReader input = new BufferedReader(new InputStreamReader(processgetInputStream()));
String line = " ";
while ((line = inputreadLine()) != null)
{
//把读出的line取出javamail的PID,
}
获取netstat PID对应的端口号仿照上述即可
以上就是关于如何使用 WebSphere Application Server 的管理控制台的端口号全部的内容,包括:如何使用 WebSphere Application Server 的管理控制台的端口号、was可以正常启动但是浏览器上server状态不可用、各位兄台,如何获得自己程序的当前线程所占用的端口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)