`
cydia
  • 浏览: 74367 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

配置weblogic JMS server时遇到的域安全问题

阅读更多

问题描述:本机配置了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集群配置

    本教程将深入探讨如何在Linux环境下配置Weblogic集群以及Weblogic JMS集群,这对于提高应用程序的可用性和可扩展性至关重要。 首先,让我们了解一下Weblogic集群的基本概念。Weblogic集群是指一组独立的Weblogic...

    配置Weblogic9. 图解说明 以及和myEclipse集成

    本文将详细介绍如何配置Weblogic 9.0,并将其与myEclipse集成。 首先,配置Weblogic 9.0涉及到的主要步骤包括设置BEA home directory和WebLogic installation directory。这两个路径指向Weblogic服务器的根目录和...

    aix下weblogic的集群配置

    以上是AIX环境下配置WebLogic集群的基本步骤,需要注意的是,实际操作中可能会遇到各种问题,如网络配置、权限、文件系统权限等,需要根据具体情况进行调整。在AIX上部署WebLogic集群需要对AIX系统管理、网络配置...

    weblogic9使用手册

    配置WebLogic Server涉及多个方面,如设置域(Domain)、配置服务器实例、定义数据源、创建JMS队列和主题、配置集群以及安全管理等。在域中,你可以定义一组相关的服务、应用程序和配置,便于管理和部署。手册中会...

    配置Oracle WebLogic

    4. 配置域(Domain),这是WebLogic管理服务器和受管服务器的逻辑单位,包含了服务器实例、集群、数据源、JMS资源等配置信息。 5. 创建并配置新的域,例如命名为“mydomain”,并设置管理服务器(Admin Server)的...

    Wrox.Professional.Oracle.Weblogic.Server.Oct.2009.rar

    2. **安装与配置**:这部分内容会指导读者如何下载、安装和配置WebLogic Server,包括设置环境变量、创建域和管理服务器实例。 3. **应用部署**:书中可能会详细讲述如何打包和部署Java EE应用程序到WebLogic ...

    weblogic的集群配置

    “源码”可能指的是配置WebLogic集群时可能涉及的定制化脚本或者自定义部署配置。而“工具”通常指的是WebLogic的管理控制台或命令行工具,例如`wlst`(WebLogic Scripting Tool),用于自动化集群的配置和管理。 4...

    Oracle WebLogic Server开发权威指南.rar

    接着,会详细讲解如何创建、配置和管理域,这是WebLogic Server组织其服务和管理单元的方式。此外,还会涉及数据源、JMS队列和主题、连接器(JCA)的设置,这些都是企业级应用中常见的组件。 在Java EE开发方面,你...

    weblogic部署图解.rar

    9. **故障排查和优化**:学习如何诊断和解决部署过程中可能遇到的问题,以及如何优化WebLogic Server的性能。 通过这份详细的部署图解,用户不仅可以了解WebLogic Server的部署流程,还能掌握各种配置和管理技巧,...

    weblogic自学全套教程

    配置阶段需要设定域(Domain)、管理服务器(Admin Server)以及托管服务器(Managed Server),同时还要配置JDBC数据源、JMS队列等资源。 二、WebLogic服务器启动与停止 在完成配置后,可以通过命令行或者控制台...

    weblogic部署

    当遇到问题时,首先检查WebLogic的日志文件,它通常包含了错误信息和调试信息。同时,可以调整服务器的JVM参数以优化性能,例如增加堆内存大小、调整垃圾回收策略等。 10. **集群与高可用性**: 对于高可用性和...

    WEBLOGIC配置文档

    1. **安装与环境配置**:在开始配置WebLogic之前,需要确保你的系统满足WebLogic Server的硬件和软件需求。这通常包括Java Development Kit (JDK)的安装,以及设置好JAVA_HOME环境变量。然后,你可以通过可执行文件...

    Weblogic 8.1 + MyEclipse的配置及其Java Web应用的部署和测试.doc

    4. **配置Weblogic Server连接**:在MyEclipse的Servers视图中,右键单击新添加的Weblogic Server实例,选择`Properties`。在这里可以配置连接参数,如服务器地址、端口、用户名和密码,以及部署时使用的JDK版本。 ...

    Linux下weblogic安装手册

    **应用安装**包括**域配置**,在WebLogic域中定义应用程序的部署目标,设置数据源、JMS资源等。**部署应用**通常涉及打包应用为WAR或EAR文件,然后通过Admin Console或Ant脚本上传并部署。**WebLogic配置**可能涉及...

    Weblogic的安装,配置,和使用步骤

    4. **故障排查**:当遇到问题时,可以查看日志文件进行故障排查。 综上所述,WebLogic Server是一款功能强大、易于使用的应用服务器,适合于企业级Java应用的开发与部署。通过了解其主要特点、安装配置流程及使用...

    WebLogic配置

    在企业环境中,合理地配置WebLogic Server可以极大地提升应用程序的性能和稳定性。 #### 二、配置向导使用方法 为了便于用户进行WebLogic的配置工作,官方提供了“Configuration Wizard”这一工具。该工具能够引导...

    weblogic920在windows下的部署

    在管理控制台上,你可以创建新的域,一个域是WebLogic Server管理的一个逻辑单元,包含了服务器实例、集群、数据源、JMS队列等资源。创建域后,你可以配置服务器实例,包括设置JDK路径、内存参数、网络配置等。同时...

Global site tag (gtag.js) - Google Analytics