问题描述:本机配置了jmsServer在 配置如下
<bean id="jndiTemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">
weblogic.jndi.WLInitialContextFactory
</prop>
<prop key="java.naming.provider.url">
t3://localhost:7001
</prop>
<prop key="java.naming.factory.url.pkgs">
weblogic.jndi.factories
</prop>
</props>
</property>
</bean>
<!-- jms sender -->
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<bean id="jmsQueue"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"></property>
<property name="jndiName" value="Queue"></property>
</bean>
<!-- jms template -->
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsConnectionFactory"></property>
<property name="defaultDestination" ref="jmsQueue"></property>
</bean>
启动发布都没有问题。
但是为了让内网的用户也访问我的jms Server 我把配置中的 localhost改成了我的ip,
这时发布遇到了问题
<2009-4-9 上午10时02分18秒 CST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException:
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:891)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60)
Truncated. see log file for complete stacktrace
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:815)
at weblogic.security.service.SecurityServiceManager.getSealedSubjectFromWire(SecurityServiceManager.java:504)
at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:316)
at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:809)
at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:298)
Truncated. see log file for complete stacktrace
>
解决办法 :
配置加入用户名密码
<bean id="jndiTemplate"
class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">
weblogic.jndi.WLInitialContextFactory
</prop>
<prop key="java.naming.provider.url">
t3://192.166.68.44:7001
</prop>
<prop key="java.naming.factory.url.pkgs">
weblogic.jndi.factories
</prop>
<prop key="java.naming.security.principal">
weblogic
</prop>
<prop key="java.naming.security.credentials">
weblogic
</prop>
</props>
</property>
</bean>
<!-- jms sender -->
<bean id="jmsConnectionFactory"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate" />
<property name="jndiName" value="ConnectionFactory" />
</bean>
<bean id="jmsQueue"
class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"></property>
<property name="jndiName" value="Queue"></property>
</bean>
<!-- jms template -->
<bean id="jmsTemplate"
class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsConnectionFactory"></property>
<property name="defaultDestination" ref="jmsQueue"></property>
</bean>
重启就好了。weblogic对于127.0.0.1与localhost的安全 校验似乎较低。
还有注意的一点:该工程我配置 远程的jms服务器时,通过本机发送消息到远程jms服务器,然后再监听远程jms服务器的消息队列,在easyeclipse下面直接发布到weblogic下,启动时总是抛出域信任问题的异常
<2009-5-5 上午11时29分04秒 CST> <Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'maillistenerContainer' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators].
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'maillistenerContainer' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1032)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:420)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:141)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
Truncated. see log file for complete stacktrace
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:211)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338)
at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
at weblogic.jms.frontend.FEConnectionFactoryImpl_922_WLStub.connectionCreateRequest(Unknown Source)
at weblogic.jms.client.JMSConnectionFactory.setupJMSConnection(JMSConnectionFactory.java:238)
Truncated. see log file for complete stacktrace
java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at weblogic.security.service.SecurityServiceManager.seal(SecurityServiceManager.java:815)
at weblogic.security.service.SecurityServiceManager.getSealedSubjectFromWire(SecurityServiceManager.java:504)
at weblogic.rjvm.MsgAbbrevInputStream.getSubject(MsgAbbrevInputStream.java:316)
at weblogic.rmi.internal.BasicServerRef.acceptRequest(BasicServerRef.java:809)
at weblogic.rmi.internal.BasicServerRef.dispatch(BasicServerRef.java:298)
Truncated. see log file for complete stacktrace
>
这个异常费了我很多时间,最后证明是easyEclipse的weblogic插件的问题导致的,直接打包放到weblogic域下发布和在myeclipse下发布工程都没有问题。
注:在整个调试过程中,linux下经常jms通讯失败的,一个原因是 linux的默认防火墙没有关闭。
分享到:
相关推荐
本教程将深入探讨如何在Linux环境下配置Weblogic集群以及Weblogic JMS集群,这对于提高应用程序的可用性和可扩展性至关重要。 首先,让我们了解一下Weblogic集群的基本概念。Weblogic集群是指一组独立的Weblogic...
本文将详细介绍如何配置Weblogic 9.0,并将其与myEclipse集成。 首先,配置Weblogic 9.0涉及到的主要步骤包括设置BEA home directory和WebLogic installation directory。这两个路径指向Weblogic服务器的根目录和...
以上是AIX环境下配置WebLogic集群的基本步骤,需要注意的是,实际操作中可能会遇到各种问题,如网络配置、权限、文件系统权限等,需要根据具体情况进行调整。在AIX上部署WebLogic集群需要对AIX系统管理、网络配置...
配置WebLogic Server涉及多个方面,如设置域(Domain)、配置服务器实例、定义数据源、创建JMS队列和主题、配置集群以及安全管理等。在域中,你可以定义一组相关的服务、应用程序和配置,便于管理和部署。手册中会...
4. 配置域(Domain),这是WebLogic管理服务器和受管服务器的逻辑单位,包含了服务器实例、集群、数据源、JMS资源等配置信息。 5. 创建并配置新的域,例如命名为“mydomain”,并设置管理服务器(Admin Server)的...
2. **安装与配置**:这部分内容会指导读者如何下载、安装和配置WebLogic Server,包括设置环境变量、创建域和管理服务器实例。 3. **应用部署**:书中可能会详细讲述如何打包和部署Java EE应用程序到WebLogic ...
“源码”可能指的是配置WebLogic集群时可能涉及的定制化脚本或者自定义部署配置。而“工具”通常指的是WebLogic的管理控制台或命令行工具,例如`wlst`(WebLogic Scripting Tool),用于自动化集群的配置和管理。 4...
接着,会详细讲解如何创建、配置和管理域,这是WebLogic Server组织其服务和管理单元的方式。此外,还会涉及数据源、JMS队列和主题、连接器(JCA)的设置,这些都是企业级应用中常见的组件。 在Java EE开发方面,你...
9. **故障排查和优化**:学习如何诊断和解决部署过程中可能遇到的问题,以及如何优化WebLogic Server的性能。 通过这份详细的部署图解,用户不仅可以了解WebLogic Server的部署流程,还能掌握各种配置和管理技巧,...
配置阶段需要设定域(Domain)、管理服务器(Admin Server)以及托管服务器(Managed Server),同时还要配置JDBC数据源、JMS队列等资源。 二、WebLogic服务器启动与停止 在完成配置后,可以通过命令行或者控制台...
当遇到问题时,首先检查WebLogic的日志文件,它通常包含了错误信息和调试信息。同时,可以调整服务器的JVM参数以优化性能,例如增加堆内存大小、调整垃圾回收策略等。 10. **集群与高可用性**: 对于高可用性和...
WebLogic在启动时可能会遇到各种问题,如配置错误、依赖库缺失等。错误消息会出现在控制台输出或日志文件中,帮助定位问题。 ## 受管服务器加入域 新受管服务器需要加入现有域才能接收管理。这个过程通常涉及复制...
1. **安装与环境配置**:在开始配置WebLogic之前,需要确保你的系统满足WebLogic Server的硬件和软件需求。这通常包括Java Development Kit (JDK)的安装,以及设置好JAVA_HOME环境变量。然后,你可以通过可执行文件...
4. **配置Weblogic Server连接**:在MyEclipse的Servers视图中,右键单击新添加的Weblogic Server实例,选择`Properties`。在这里可以配置连接参数,如服务器地址、端口、用户名和密码,以及部署时使用的JDK版本。 ...
**应用安装**包括**域配置**,在WebLogic域中定义应用程序的部署目标,设置数据源、JMS资源等。**部署应用**通常涉及打包应用为WAR或EAR文件,然后通过Admin Console或Ant脚本上传并部署。**WebLogic配置**可能涉及...
4. **故障排查**:当遇到问题时,可以查看日志文件进行故障排查。 综上所述,WebLogic Server是一款功能强大、易于使用的应用服务器,适合于企业级Java应用的开发与部署。通过了解其主要特点、安装配置流程及使用...
在企业环境中,合理地配置WebLogic Server可以极大地提升应用程序的性能和稳定性。 #### 二、配置向导使用方法 为了便于用户进行WebLogic的配置工作,官方提供了“Configuration Wizard”这一工具。该工具能够引导...
在管理控制台上,你可以创建新的域,一个域是WebLogic Server管理的一个逻辑单元,包含了服务器实例、集群、数据源、JMS队列等资源。创建域后,你可以配置服务器实例,包括设置JDK路径、内存参数、网络配置等。同时...