websphere


javaee and websphere12 二 2010 09:56 上午

环境描述
Windows平台
IBMWAS6.1.0.29
使用DM控制网络节点,DM由于无法获得受控节点的主机名导致DM无法启动

报错信息如下

[10-2-12 9:48:44:812 CST] 0000000a HostNameMap   E   HMGR0024W: 查找核心组成员的主机名的 IP 地址时发生错误。主机名为 xxxServer,异常为 java.net.UnknownHostException: xxxServer: xxxServer
at java.net.InetAddress.getAllByName0(InetAddress.java:1247)
at java.net.InetAddress.getAllByName(InetAddress.java:1174)
at java.net.InetAddress.getAllByName(InetAddress.java:1097)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.getInetAddresses(HostNameMap.java:182)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.<init>(HostNameMap.java:62)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMapManager.getHostNameMap(HostNameMapManager.java:87)

[10-2-12 9:48:49:953 CST] 0000000a AppProfileCom I   ACIN0009I: 正在停止 Application Profiling 服务。
[10-2-12 9:48:49:953 CST] 0000000a ActivitySessi I   WACS0049I: ActivitySession Service 正在停止。
[10-2-12 9:48:50:031 CST] 0000000a CGBridgeServi I   CWRCB0103I: 核心组网桥服务已停止。
[10-2-12 9:48:50:078 CST] 0000000a WsServerImpl  E   WSVR0009E: 启动期间发生错误
META-INF/ws-server-components.xml
[10-2-12 9:48:50:078 CST] 0000000a WsServerImpl  E   WSVR0009E: 启动期间发生错误
com.ibm.ws.exception.RuntimeError: com.ibm.ws.exception.RuntimeError: Unable to start the CoordinatorComponentImpl
at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:199)
at com.ibm.ws.runtime.WsServerImpl.start(WsServerImpl.java:140)
at com.ibm.ws.runtime.WsServerImpl.main(WsServerImpl.java:461)
at com.ibm.ws.runtime.WsServer.main(WsServer.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at com.ibm.wsspi.bootstrap.WSLauncher.launchMain(WSLauncher.java:183)
at com.ibm.wsspi.bootstrap.WSLauncher.main(WSLauncher.java:90)
at com.ibm.wsspi.bootstrap.WSLauncher.run(WSLauncher.java:72)
at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:78)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:92)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:68)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:400)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.core.launcher.Main.invokeFramework(Main.java:340)
at org.eclipse.core.launcher.Main.basicRun(Main.java:282)
at org.eclipse.core.launcher.Main.run(Main.java:981)
at com.ibm.wsspi.bootstrap.WSPreLauncher.launchEclipse(WSPreLauncher.java:339)
at com.ibm.wsspi.bootstrap.WSPreLauncher.main(WSPreLauncher.java:94)
Caused by: com.ibm.ws.exception.RuntimeError: Unable to start the CoordinatorComponentImpl
at com.ibm.ws.hamanager.runtime.CoordinatorComponentImpl.start(CoordinatorComponentImpl.java:302)
at com.ibm.ws.runtime.component.ContainerImpl.startComponents(ContainerImpl.java:977)
at com.ibm.ws.runtime.component.ContainerImpl.start(ContainerImpl.java:673)
at com.ibm.ws.runtime.component.ServerImpl.start(ServerImpl.java:526)
at com.ibm.ws.runtime.WsServerImpl.bootServerContainer(WsServerImpl.java:192)
… 24 more
Caused by: com.ibm.wsspi.hamanager.HAInternalStateException: failure creating the Coordinator
at com.ibm.ws.hamanager.coordinator.impl.CoordinatorImpl.<init>(CoordinatorImpl.java:336)
at com.ibm.ws.hamanager.coordinator.corestack.CoreStackFactoryImpl.createDefaultCoreStack(CoreStackFactoryImpl.java:88)
at com.ibm.ws.hamanager.runtime.CoordinatorComponentImpl.start(CoordinatorComponentImpl.java:272)
… 28 more
Caused by: com.ibm.wsspi.hamanager.datastack.DataStackException: Failure creating core stack
at com.ibm.ws.hamanager.coordinator.impl.DCSPluginImpl.<init>(DCSPluginImpl.java:252)
at com.ibm.ws.hamanager.coordinator.impl.CoordinatorImpl.<init>(CoordinatorImpl.java:329)
… 30 more
Caused by: com.ibm.wsspi.hamanager.HAException: Host name xxxServer is not registered in DNS
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.<init>(HostNameMap.java:68)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMapManager.getHostNameMap(HostNameMapManager.java:87)
at com.ibm.ws.hamanager.coordinator.dcs.CoreStackMembershipManager.createMemberMapping(CoreStackMembershipManager.java:473)
at com.ibm.ws.hamanager.coordinator.dcs.CoreStackMembershipManager.<init>(CoreStackMembershipManager.java:120)
at com.ibm.ws.hamanager.coordinator.impl.DCSPluginImpl.<init>(DCSPluginImpl.java:220)
… 31 more
Caused by: java.net.UnknownHostException: xxxServer: xxxServer
at java.net.InetAddress.getAllByName0(InetAddress.java:1247)
at java.net.InetAddress.getAllByName(InetAddress.java:1174)
at java.net.InetAddress.getAllByName(InetAddress.java:1097)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.getInetAddresses(HostNameMap.java:182)
at com.ibm.ws.hamanager.coordinator.dcs.HostNameMap.<init>(HostNameMap.java:62)
… 35 more

解决办法
在C:\WINDOWS\system32\drivers\etc\hosts文件中直接增加改主机名和ip的对应关系,启动DM即可。

javaee and spring and websphere11 二 2010 01:52 下午

环境
IBMWAS6.1.0.29
spring2.5.6
hibernate3.3.1GA
jconn3驱动
Sybase15

java.sql.SQLException: JZ0PA: The query has been cancelled and the response discarded. The cancel was probably issued by another statement on the connection.
java.sql.SQLException: JZ0PA: 已取消查询,响应被放弃。取消指令可能由连接上的另一语句发出。
at com.sybase.jdbc3.jdbc.ErrorMessage.raiseError(Unknown Source)
at com.sybase.jdbc3.jdbc.SybStatement.getUpdateCount(Unknown Source)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.closeWrapper(WSJdbcPreparedStatement.java:445)
at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:185)
at com.ibm.ws.rsadapter.jdbc.WSJdbcObject.close(WSJdbcObject.java:144)
at org.hibernate.jdbc.AbstractBatcher.closePreparedStatement(AbstractBatcher.java:563)
at org.hibernate.jdbc.AbstractBatcher.closeStatement(AbstractBatcher.java:291)
at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:307)
at org.hibernate.jdbc.AbstractBatcher.closeQueryStatement(AbstractBatcher.java:234)
at org.hibernate.loader.Loader.doQuery(Loader.java:749)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
at org.hibernate.loader.Loader.doList(Loader.java:2228)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2125)
at org.hibernate.loader.Loader.list(Loader.java:2120)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:361)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1148)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)

原因是由于刚更新了WAS6.1.0.29,回滚到WAS6.1.0.21,问题消失。29解决办法还未找到。

javaee and websphere30 一 2010 08:37 下午

IBM Websphere是IBM的JEE中间件产品,简称WAS。
IBM HTTP Server是IBM的http服务器产品,简称IHS。
IHS具有链接映射到WAS的功能,即是路由转发,如http://192.168.11.1/app可以转发到http://192.168.11.2:9080/app,要达到转发需要为IHS安装WAS的plugin。
安装WAS分两个步骤,一个安装WAS的本体,一个是安装概要,
安装概要有4钟模式。
1)DM+appserver
2)DM
3)应用服务器
4)自定义server
概要文件是一个逻辑上的WAS服务器,一个概要文件对应一个节点,这个概要上可包含一个节点控制器和一个nodeagent和多个appserver。其中最简单的是3)应用服务器,也是WAS默认的安装概要的选项,此概要是不基于nodeagent的,是将was控制台和was应用server全部托付给一个java进程的安装方式。
其余三种安装方式2)和4)是需要组合安装的,1)是在单硬件server上2)和4)安装的简单组合。
1)2)4)的安装概要方式是基于多java进程的,DM单独一个进程,nodeagent单独一个进程,appserver单独一个进程。DM通过nodeagent向网络上的本概要文件发送指令。
安装的默认的控制台端口为9043和9060,访问地址为https://127.0.0.1:9043/ibm/console和http://127.0.0.1:9060/ibm/console。appserver的默认端口为9080。

DM+nodeagent使我们创建基于多硬件的集群appserver变得非常的简单,并且应用的发布也可以达到一键式的操作。

javaee and websphere30 一 2010 08:08 下午

使用场景
WAS6.1.0.21
数据库为Sybase15
数据源为WAS的jtds的sybase,数据源最大数50
使用spring2.5.6和hibernate3.3.1
是用spring的jdbctemplate调用Sybase的存储过程。
用loadrunner进行压力测试
报错如下
ERROR: ConnectionCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; DSRA9110E: 关闭 Connection。; nested exception is com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: 关闭 Connection。
org.springframework.jdbc.UncategorizedSQLException: ConnectionCallback; uncategorized SQLException for SQL []; SQL state [null]; error code [0]; DSRA9110E: 关闭 Connection。; nested exception is com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: 关闭 Connection。
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:349)

Caused by: com.ibm.websphere.ce.cm.ObjectClosedException: DSRA9110E: 关闭 Connection。
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.runtimeXIfNotClosed(WSJdbcConnection.java:2657)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareCall(WSJdbcConnection.java:2022)
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareCall(WSJdbcConnection.java:1914)
at sun.reflect.GeneratedMethodAccessor247.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.hibernate.jdbc.BorrowedConnectionProxy.invoke(BorrowedConnectionProxy.java:74)
at $Proxy41.prepareCall(Unknown Source)
at sun.reflect.GeneratedMethodAccessor246.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.springframework.jdbc.core.JdbcTemplate$CloseSuppressingInvocationHandler.invoke(JdbcTemplate.java:1292)
at $Proxy42.prepareCall(Unknown Source)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:342)

解决办法,由于是多线程并发访问,在调用存储过程的方法上加上synchronized,避免多线程并发。

javaee and websphere30 十二 2009 01:55 下午

NSTCONFFAILED: 无法创建概要文件。ADMU0026I: 联合期间发生错误

环境

两台硬件PC

WAS61

pc1(ip=192.168.10.1 主机名PC1)安装 IHS和DM

pc2(ip=192.168.11.1 主机名PC2)安装 一个概要,节点托管给pc1

将pc2概要节点联合pc1的DM时候,总是联合不上。

删除了几次pc2上的WAS应用程序也不管用,于是决定使用手动联合进行,即创建完概要的时候选择稍后联合,正常创建完后,使用cmd命令进入创建的概要目录的bin,

敲入命令 addNode 192.168.10.1 8879

D:\IBM\WebSphere\AppServer\bin>addNode 192.168.10.1 8879

ADMU0116I: 正在文件

D:\IBM\WebSphere\AppServer\profiles\Custom01\logs\addNode.log

中记录工具信息

ADMU0128I: 正在启动具有 Custom01 概要文件的工具

CWPKI0308I: 正在使用以下 SHA

摘要将签署者别名“CN=PC1,

O=IBM,

C=US”添加至本地密钥库“ClientDefaultTrustStore”:FC:E1:E2:44:9A:22:

61:94:EF:C9:80:26:8E:0B:9F:72:70:9A:05:1F

CWPKI0308I: 正在使用以下 SHA

摘要将签署者别名“dummyclientsigner”添加至本地密钥库“ClientDefaultT

rustStore”:0B:3F:C9:E0:70:54:58:F7:FD:81:80:70:83:A6:D0:92:38:7A:54:CD

CWPKI0308I: 正在使用以下 SHA

摘要将签署者别名“dummyserversigner”添加至本地密钥库“ClientDefaultT

rustStore”:FB:38:FE:E6:CF:89:BA:01:67:8F:C2:30:74:84:E2:40:2C:B4:B5:65

ADMU0001I: 在 192.168.10.1:8879 上开始节点

PC2Node01 与 Deployment

Manager 的联合。

ADMU0001I: 在 192.168.10.1:8879 上开始节点

PC2Node01 与 Deployment

Manager 的联合。

ADMU0009I: 成功连接到 Deployment Manager

服务器:192.168.10.1:8879

ADMU0507I: 在

D:\IBM\WebSphere\AppServer\profiles\Custom01\config/cells/PC2Node01Cell/nodes/PC2Node01/servers

下的配置中未找到服务器。

ADMU2010I: 正在停止节点 PC2Node01

的所有服务器进程

ADMU0024I: 正在删除旧的备份目录。

ADMU0015I: 备份原始单元存储库。

ADMU0012I: 创建节点 PC2Node01 的 Node

Agent 配置

ADMU0027E: 联合 ADMU0036E: Deployment

Manager 不能根据名称主机 PC2

在地址 192.168.11.1 查找

期间发生错误;回滚到原始配置。

ADMU0211I: 在文件

D:\IBM\WebSphere\AppServer\profiles\Custom01\logs\addNode.log

中可看到错误的详细信息

ADMU0026I: 联合期间发生错误;回滚到原始配置。

ADMU0111E: 由于错误

com.ibm.websphere.management.exception.AdminException:

ADMU0036E: Deployment

Manager 不能根据名称主机 PC2

在地址 192.168.11.1 查找,程序退出

ADMU1211I: 要获取故障的全部跟踪,使用 -trace 选项。

ADMU0211I: 在文件

D:\IBM\WebSphere\AppServer\profiles\Custom01\logs\addNode.log

中可看到错误的详细信息

关键信息是

由于错误 com.ibm.websphere.management.exception.AdminException: ADMU0036E: Deployment Manager 不能根据名称主机 PC2 在地址192.168.11.1

于是分别修改了两台机器的hosts文件

在C:\windows\system32\drivers\etc\hosts文件中增加如下配置

192.168.10.1    PC1

192.168.11.1    PC2

然后再手工联合DM成功!

javaee and websphere30 十二 2009 01:53 下午

WAS的安装根据硬件的网络结构而定,一般一个硬件PC安装一个概要,DM装在任一个PC上或者单独的PC上,IHS安装在一个PC。
一个概要对 应一个nodeagent,nodeagent本质上是概要中的一个特殊的server,nodeagent是概要的代理,受管于DM,所以 nodeagent是必须要事先启动的,启动后DM就能通过nodeagent向此概要发送指令,创建server,启动server,终止server 等等。

假如有两台PC,可这样装
192.168.0.1 PC1
192.168.0.2 PC2

PC1 安装IHS+一个WAS概要,,此概要上不安装任何server
PC2安装DM+一个WAS概要,此概要上可创建多个server

具体安装步骤
1)PC1上 安装IHS,PC1上安装WAS,安装时不安装任何概要
升级IHS,升级WAS,创建概要,选择自定义概要,选择稍后联合。over
2)PC2 上安装WAS,安装时不安装任何概要
升级WAS,创建概要,选择DM,安装完后,启动。
创建概要,选择自定义概要,选择稍后联合。 over
3)PC2上启动DM
4)DM联合概要
PC1上进入 概要Custom01/bin目录下敲入 addNode 192.168.0.2 8879 将PC1概要节点联合到PC2DM上
PC2上进入 概要Custom01/bin目录下敲入 addNode 192.168.0.2 8879 将PC2概要节点联合到PC2DM上
5)启动节点nodeagent,确认两台受控节点的 nodeagent已启动
PC1上进入 概要Custom01/bin目录下敲入 startNode
PC2上进入 概要Custom01/bin目录下敲入 startNode

将PC1的nodeagent和PC2的nodeagent通过 WASService加入到Windows服务中,随机启动
进入PC1 D:\IBM\WebSphere\AppServer\bin目录中执行如下命令

WASService -add NodeAgent -serverName nodeagent -profilePath “D:\IBM\WebSphere\AppServer\profiles\Custom01″ -wasHome “D:\IBM\WebSphere\AppServer” -logRoot “D:\IBM\WebSphere\AppServer\profiles\Custom01\logs\nodeagent” -LogFile “D:\IBM\WebSphere\AppServer\profiles\Custom01\logs\nodeagent\startServer.log” -restart true

6)进入DM控制台

https://192.168.0.2:9043/ibm/console

通 过控制台
服务器–>应用服务器在PC2上添加应用服务器server1
服务器–>WEB服务器在PC2节点上添加 httpserver

安装完毕

7)通过DM控制台配置PC2的server1参数
在WAS Console -> Application Servers
-> -> Web Container Settings -> Web Container
-> Custom Properties里,增加一个custom
property, 名字为 com.ibm.ws.webcontainer.invokefilterscompatibility,值为true。

修改 PC2的server1的虚拟机最大最小堆栈

应用程序服务器 > server1 > 进程定义 > Java 虚拟机

最小512
最大1024

8)通过DM控制台增加虚拟机映射端口
环境–>虚拟主机 –>default_host
新增* 9081

以下内容为转载
WAS配置概要

描述 参数 缺省值 设置原则
JVM堆栈 服务器 > 应用程序服务器 > server1 > Java 虚拟机 最小值为总内存1/8,最大值为总内存1/2至3/4
连接池 资源 > JDBC提供程序 > (JDBC提供程序名) > 数据源> (数据源名)
> 连接池属*
最小连接数:10
最大连接数:50
通过TPV监控连接池的大小变化曲线设置
语 句高速缓存 资源 > JDBC提供程序 > (JDBC提供程序名) > 数据源> (数据源名)
>
WebSphere Application Server 数据源属* > 语句高速缓存大小
10 比如实际情况下CPU利用率很高,并且表明有瓶颈,performance advisors报警提示prepare
statement缓存丢弃 率较高,这说明默认的值(10)太小,需要增加该值大小以提高吞吐
JMS 池 资源JMS提供程序缺省消息传递JMS激活规范激活规范名 最大批次大小:无
最大并发端点数:无
根据实际情况分析
Web容器线程池 服务器 > 应用程序服务器 > (服务器名) >
线程池 > WebContainer
最小大小:10
最大大小:50
通过TPV监控Web容器线程池最大值(在可接受的相应时间范围内),根据此值进行设置
EJB缓存 服务器 > 应用程序服务器 > (服务器名) > EJB告诉缓存设置 > EJB缓存设置
>
高速缓存大小
高速缓存大小:2053
清除时间间隔:3000
比如通过TPV监控发现ejbStore()有很高的调用率并且CPU利用率很低,可以基于期望的最大的活动的EJB实
例 设置该值

http://wangbaoaiboy.blog.163.com/blog/static/5211191020091032651189/

javaee and websphere11 十一 2009 11:54 上午

1)
my-struts.xml置于WEB-INF/classes目录下
2)通过修改web.xmls2过滤器的初始化参数
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>config</param-name>
<param-value>struts-default.xml,struts-plugin.xml,my-struts.xml</param-value>
</init-param>
</filter>
struts-default.xml,struts-plugin.xml必须加上
要不会报错
采用include的方式好像也有问题
<include file=”struts-default.xml” />
<include file=”struts-plugin.xml” />

com.opensymphony.xwork2.inject.DependencyException: com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMembers(ContainerImpl.java:144)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectorsForMethods(ContainerImpl.java:113)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:90)
at com.opensymphony.xwork2.inject.ContainerImpl.addInjectors(ContainerImpl.java:86)
at com.opensymphony.xwork2.inject.ContainerImpl$1.create(ContainerImpl.java:71)
Truncated. see log file for complete stacktrace
com.opensymphony.xwork2.inject.ContainerImpl$MissingDependencyException: No mapping found for dependency [type=com.opensymphony.xwork2.ObjectFactory, name='default'] in public void com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.setObjectFactory(com.opensymphony.xwork2.ObjectFactory).
at com.opensymphony.xwork2.inject.ContainerImpl.createParameterInjector(ContainerImpl.java:235)
at com.opensymphony.xwork2.inject.ContainerImpl.getParametersInjectors(ContainerImpl.java:225)
at com.opensymphony.xwork2.inject.ContainerImpl$MethodInjector.<init>(ContainerImpl.java:287)
at com.opensymphony.xwork2.inject.ContainerImpl$3.create(ContainerImpl.java:117)
at com.opensymphony.xwork2.inject.ContainerImpl$3.create(ContainerImpl.java:115)
Truncated. see log file for complete stacktrace

javaee and websphere02 十一 2009 11:10 下午

1)首先安装WAS并不创建任何概要。安装IHS

2)安装一个概要DM,并启动这个DM,一般是9043的端口,可将此cellManager添加到系统服务中并使自启动。

3)安装一个自定义的概要节点Custom01,并讲此受控节点托管给DM,启动这个受控节点的nodeagent,可将此nodeagent的启动添加到系统服务中并使自启动。

4)在DM的后台登陆进去,将配置更改为自动同步。在Custom01受控节点上创建一个server,一般端口是9080。

5)为这个server新增一个参数com.ibm.ws.webcontainer.invokefilterscompatibility

在WAS Console -> Application Servers -> <SERVER> -> Web Container Settings -> Web Container -> Custom Properties里,增加一个custom property,名字为com.ibm.ws.webcontainer.invokefilterscompatibility,值为true。

6)创建一个webserver基于IBM HttpServer,创建插件并传播插件。

7)发布测试struts2应用。

停止概要的cmd命令

cd D:\IBM\WebSphere\AppServer\bin目录下

stopServer Server01 -profileName Custom01
stopServer nodeagent -profileName Custom01
stopManager -profileName Dmgr01
stopNode -profileName Custom01

javaee and websphere02 十一 2009 10:58 下午

开发环境

JDK1.5 WAS6.1.0.21

struts2,spring2,hibernate3.1

出现问题的前因后果

1)使用基于jsp2的api开发标签库,注意不是基于struts2的框架开发组件。

2)将myTag.tld置于WEB-INF/tlds/目录下

3)在web.xml中配置如下

<jsp-config>
<taglib>
<taglib-uri>myTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/myTag.tld</taglib-location>
</taglib>
</jsp-config>

4)在myTagExample.jsp中如此使用

<%@ taglib uri=”/myTag” prefix=”myTag” %>

<myTag:TextField  name=”property”/>

报错如下

错误消息:
JSPG0047E: 找不到 URI /myTag的标记库

根本原因:
com.ibm.ws.jsp.JspCoreException: JSPG0047E: 找不到 URI /myTag的标记库
at com.ibm.ws.jsp.translator.visitor.tagfiledep.TagFileDependencyVisitor.visitCustomTagStart(TagFileDependencyVisitor.java:76)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:267)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processChildren(JspVisitor.java:309)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.processJspElement(JspVisitor.java:139)
at com.ibm.ws.jsp.translator.visitor.JspVisitor.visit(JspVisitor.java:121)
at com.ibm.ws.jsp.translator.JspTranslator.processVisitors(JspTranslator.java:127)
at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJsp(JspTranslatorUtil.java:260)
at com.ibm.ws.jsp.translator.utils.JspTranslatorUtil.translateJspAndCompile(JspTranslatorUtil.java:103)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper.translateJsp(AbstractJSPExtensionServletWrapper.java:453)
at com.ibm.ws.jsp.webcontainerext.AbstractJSPExtensionServletWrapper._checkForTranslation(AbstractJSPExtensionServletWrapper.java:421)

解决此问题的办法有两个

1)修改web.xml中的配置如下

<jsp-config>
<taglib>
<taglib-uri>/myTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/myTag.tld</taglib-location>
</taglib>
</jsp-config>

2)将web.xml的jsp-config全部删除,并将myTag.tld文件至于WEB-INF目录下即可。

javaee and websphere02 十一 2009 10:12 下午

今天测试开发机器的机器名被网管给改了,导致之前安装的WAS概要的服务无法启动了,环境是Win2003Server,WAS6.1.0.21版本。

在网上找了些资料,解决此问题有两种办法

1)将WAS的概要文件和主机名解除耦合,使用IP代替,没测试过

2)修改WAS的概要文件的配置文件,可借助脚本

在网上找到两个非常有效的帖子

http://www.webspherechina.net/club/archiver/tid-9377.html

http://www.ibm.com/developerworks/websphere/library/samples/SampleScripts.html

具体操作的步骤
1)下载ConfigScripts.zip,并解压缩到D:\IBM\WebSphere\AppServer\bin目录下
2)进入cmd命令行,敲如下命令
ws_ant -profileName Dmgr01 -buildfile exportImpor
t.xml -DstartManager=yes -DoldHostName=old -DnewHostName=new changeHostName
然后是命令的一系列输出
最后输出
BUILD SUCCESSFUL
Total time: 39 seconds

表示这个DM的主机名的配置已经被更改了,至于NodeAgent的服务跟如上命令差不多,只是把-DstartManager=yes这个参数去掉就可以了

IHS的配置也要跟着更改一下,我索性把原有的webserver删除重新搞了一个全新的webserver,再进行生成插件和传播插件。

下一页 »