weblogic发布项目失败,后台报错:
- Caused by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
- at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
- at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:348)
- at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:259)
- at weblogic.jdbc.common.internal.RmiDataSource_1035_WLStub.getConnection(Unknown Source)
- at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81)
- at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:111)
- at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2119)
- at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2115)
- at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1339)
- at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
- at org.springframework.orm.hibernate3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:855)
- at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:774)
- at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1469)
- at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1409)
- ... 69 more
上网查出,原来是weblogic认为我的项目有越域(跨越)行为,为安全起见,不让成功发布。
检查相关配置文件,原来是一处jndi的url配置错误,weblogic认为项目越域。
<jee:jndi-lookup id="dataSource" jndi-name="jdbc/efr_conDS">
<jee:environment>
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.provider.url=t3://174.34.51.67:7001
java.naming.security.principal=weblogic
java.naming.security.credentials=weblogic1
</jee:environment>
</jee:jndi-lookup>
修改后,发布成功。
闲话一句:如果说需要发生越域行为的话,网上说需要设置分别设置两个域之间的信任,详情见网上。