标签: weblogic12c

NameNotFoundException:仅在从Eclipse Kepler发布而不是Indigo时才尝试查找'jdbc'

我可以使用oepe 12.1.1.1.1将我的web-app从Eclipse Indigo 3.7.2发布到Oracle Weblogic 12c(12.1.1)AdminServer

但是,使用oepe 12.1.2.2导入到Eclipse Kepler 4.3.1中的完全相同的web-app无法使用以下(相当完善的例程)异常发布,并且我试图找出原因?...

NameNotFoundException:尝试查找'jdbc.oraclexe'时没有找到子上下文'jdbc'.解决 ''; 剩下的名字'jdbc/oraclexe']; 链接剩余名称:'jdbc/oraclexe'

Weblogic 12c数据源肯定是可用的,我必须假设它正确配置,因为应用程序部署并运行时从Indigo发布没有任何问题.

我还假设applicationContext.xml中的映射,web.xml和weblogic.xml都是正确的,因为从Indigo发布时没有问题.映射如下......

SRC \主\ web应用\ WEB-INF \弹簧\ applicationContext.xml中

<bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
 <property name="jndiName" value="java:comp/env/jdbc/oraclexe" />
</bean>
Run Code Online (Sandbox Code Playgroud)

SRC \主\ web应用\ WEB-INF\web.xml中

<resource-ref>
 <description>Oracle Weblogic Connection Pool (oraclexe)</description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <res-type>javax.sql.DataSource</res-type>
 <res-auth>Container</res-auth>
 <mapped-name>jdbc/oraclexe</mapped-name>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)

建立\ weboutput\WEB-INF\weblogic.xml中

<resource-description>
 <res-ref-name>jdbc/oraclexe</res-ref-name>
 <jndi-name>oraclexe</jndi-name>
</resource-description>
Run Code Online (Sandbox Code Playgroud)

我想知道weblogic.xml是否在部署期间不可用(即它没有被复制到src\main\webapp\WEB-INF文件夹)而不是jndiName/resource-ref/res之间的映射问题-ref-name自己?我已经尝试将weblogic.xml直接放在src\main\webapp\WEB-INF文件夹中,但我得到了相同的异常.

我唯一的另一个想法是Indigo oepe 12.1.1.1.1很高兴发布到Weblogic 12.1.1但Kepler oepe 12.1.2不是,我应该发布到Weblogic 12.1.2服务器?

java eclipse spring weblogic12c

7
推荐指数
1
解决办法
3万
查看次数

在WebLogic 12.2.1上部署Spring Boot Websocket/STOMP应用程序时出错

我正在创建一个Spring Boot REST API,它利用WebSockets/STOMP使用SockJS将消息发送到Angular前端.我已经花了很大的力气让应用程序在WebLogic 12.2.1C中部署而不使用web.xml.我似乎很接近,但我正在使用的Spring Boot Web Socket实现存在问题.我想使用Spring Boot的实现,而不是WebLogics.当我尝试在WebLogic中部署war文件时,出现以下错误:

 <Could not load user defined filter in web.xml: weblogic.websocket.tyrus.TyrusServletFilter.
java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cannot be cast to org.glassfish.tyrus.server.TyrusServerContainer
        at weblogic.websocket.tyrus.TyrusServletFilter.init(TyrusServletFilter.java:76)
        at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:400)
        at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)
        at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:196)
        at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
        at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
        at weblogic.servlet.internal.FilterManager.initFilter(FilterManager.java:130)
        at weblogic.servlet.internal.FilterManager.loadFilter(FilterManager.java:92)
        at weblogic.servlet.internal.FilterManager.preloadFilters(FilterManager.java:72)
        at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1917)
        at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3063)
        at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1830)
        at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:875)
        at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:360)
        at weblogic.application.internal.ExtensibleModuleWrapper$StartStateChange.next(ExtensibleModuleWrapper.java:356)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Run Code Online (Sandbox Code Playgroud)

下面是我的pom.xml

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.6.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <spring.version>4.2.3.RELEASE</spring.version>
    <log4j.version>2.4.1</log4j.version>
    <apacheds.server.jndi.version>1.5.5</apacheds.server.jndi.version>
    <dao.hibernate.version>1.2.0</dao.hibernate.version>
    <commons.lang3.version>3.3.2</commons.lang3.version>
    <oracle.version>11.2.0</oracle.version>
    <hibernate.core.version>4.3.8.Final</hibernate.core.version> …
Run Code Online (Sandbox Code Playgroud)

weblogic12c spring-boot

7
推荐指数
0
解决办法
6028
查看次数

如何在 URL 中没有应用程序上下文的情况下使用 Weblogic (12 C)?

我正在处理一个需要 Weblogic 服务器的 Web 项目,部署后(在我的 Macbook Pro 上)查看站点的唯一方法是将应用程序名称指定为整个站点的前缀。例如

http://localhost:7001/myapp-weblogic/
Run Code Online (Sandbox Code Playgroud)

这打破了大量使用根 URL(例如 /images/example.png)访问资源的样式和 JavaScript 代码

虽然我可以以编程方式将“/my-app”添加到 .jsp 中的内容,但我不能在我的 .css 文件中这样做。

我尝试在 Weblogic > 控制台 > 环境 > 服务器 > myserver > 协议 > HTTP 中设置“默认 WebApp 上下文根:” - 但这不起作用。

这似乎应该是这么简单的事情。在 IIS 中,我只需在我的本地主机文件中添加一行并将主机名添加到我的 IIS 容器中 - 总共需要大约 42 秒。

127.0.0.1   myapp.local  -> Let's me view my site at http://myapp.local
Run Code Online (Sandbox Code Playgroud)

提前感谢您的任何见解!


更新!!我终于开始工作了。其中一些非常特定于我的设置,但希望对其他人仍然有帮助。

为了让它工作,我需要做 3 件主要的事情和另外一件相关的事情:

  1. 在Weblogic中设置服务器的默认应用程序
    1. 在本地服务器上,转到控制台并登录
    2. 转到:Weblogic > 控制台 > 环境 > 服务器 > myserver > 协议 > HTTP
    3. 将“默认 WebApp 上下文根:”设置为“/”+您的应用程序(例如“/myapp”) …

java weblogic clean-urls weblogic12c

6
推荐指数
2
解决办法
9374
查看次数

在eclipse中设置服务器时找不到weblogic_home

我正在尝试设置我的 java ee 开发环境,但在尝试在 eclipse 中添加新服务器时遇到问题。

我有 eclipse 的 oracle java ee 版本,我还下载了 weblogic 12.1.2 并安装和运行没有问题(我可以正常访问控制台)。我拿到了weblogic的开发版,解压到“C:\wls12120”。当我尝试在 Eclipse 中添加 weblogic 服务器时,我尝试将其设置为“C:\wls12120”,但它给了我以下消息:路径“C:\wls12120”不包含有效的 WebLogic Server 安装。

我还尝试了文件夹中的各种其他路径,但没有成功,有谁知道我做错了什么?

提前致谢!

java eclipse weblogic weblogic12c jakarta-ee

6
推荐指数
2
解决办法
4万
查看次数

为什么 Spring Security 可以在 Tomcat 中工作,但在部署到 Weblogic 时却不能工作?

我并不是真正的 Java 开发人员,但客户的项目要求我成为一名 Java 开发人员,所以也许我遗漏了一些非常明显的内容。

我正在使用 SpringBoot,当应用程序在我的本地机器和我们的测试服务器上的 Tomcat 中运行时,一切正常。但是,一旦将应用程序部署到 Weblogic,就好像所有路由都可以访问一样,根本没有安全性。登录和注销路由也不存在。

话虽如此。其他一切似乎都运行良好,只是根本没有任何安全性。

我无法访问 Weblogic,因为客户端是部署代码的人,但他们告诉我们它在 12c 上运行。我能做些什么来修复或解决这个问题?

这是我的 Application.java 中的相关配置:

/**
 * The type Authentication security.
 */
@Order(Ordered.HIGHEST_PRECEDENCE)
@Configuration
protected static class AuthenticationSecurity extends GlobalAuthenticationConfigurerAdapter {

    /**
     * The Users.
     */
    @Autowired
    private Users users;

    /**
     * Init void.
     *
     * @param auth the auth
     * @throws Exception the exception
     */
    @Override
    public void init(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(users).passwordEncoder(new BCryptPasswordEncoder());
    }
}

/**
 * The type Application security.
 */
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
protected …
Run Code Online (Sandbox Code Playgroud)

java spring spring-security weblogic12c spring-boot

6
推荐指数
1
解决办法
9019
查看次数

与WebLogic上的Jenkins的LinkageError

我在WebLogic 12c上运行Jenkins 1.613,在JBoss EAP 6.3上运行.我设法让Jenkins的email-ext插件在JBoss上运行.但是,每当我使用诸如$ PROJECT_NAME之类的令牌时,电子邮件扩展插件在WebLogic上失败(在JBoss上完全正常,我应该再次强调).

我得到以下stacktrace,这似乎表明tokenmacro插件存在一些问题.

java.lang.LinkageError: loader constraint violation: when resolving method
"com.google.common.collect.Multimaps.newListMultimap( java/util/Map; com/google/common/base/Supplier;) com/google/common/collect/ListMultimap;"

the class loader (instance of hudson/ClassicPluginStrategy$AntClassLoader2) of the current class, org/jenkinsci/plugins/tokenmacro/Tokenizer,

and the class loader (instance of sun/misc/Launcher$AppClassLoader) for resolved class, com/google/common/collect/Multimaps,

have different Class objects for the type ap; com/google/common/base/Supplier;) com/google/common/collect/ListMultimap; used in signature

at org.jenkinsci.plugins.tokenmacro.Tokenizer.find(Tokenizer.java:109)
at org.jenkinsci.plugins.tokenmacro.TokenMacro.expand(TokenMacro.java:167)
at org.jenkinsci.plugins.tokenmacro.TokenMacro.expandAll(TokenMacro.java:233)
at hudson.plugins.emailext.plugins.ContentBuilder.transformText(ContentBuilder.java:71)
at hudson.plugins.emailext.ExtendedEmailPublisher.setSubject(ExtendedEmailPublisher.java:659)
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 根据我对此跟踪的理解,问题是Multimaps类的冲突副本是否已加载?是对的吗?
  2. 为什么会涉及多个类加载器(AntClassLoader2和AppClassLoader)?应该不是这样的情况,一旦类加载器找到所需的类,它只是"返回"该类,并且只有在找不到类时才将类加载委托给父类加载器?
  3. 为什么我的设置在JBoss中工作但在WebLogic中没有?
  4. 可以做些什么来解决这个问题?我已经尝试将Guava 11放在tokenmacro插件目录的WEB-INF中,但它没有帮助.我也尝试过和番石榴13一样.

可能有用的其他信息:

  • 安装的令牌宏插件版本是1.10
  • 安装的电子邮件扩展插件版本为2.40.5
  • 在我的jenkins.war中,我有一个weblogic.xml文件,其中wls:prefer-web-inf-classes设置为true.

java jenkins weblogic12c

6
推荐指数
1
解决办法
731
查看次数

带有EJB3的Weblogic 12c中的“ JNDI名称已被使用”

我有以下代码尝试作为EJB部署到WebLogic 12c,但出现错误:

“部署EJB GeopoliticalServiceBean(应用程序:campaigner-ejb,EJBComponent:campaigner-service.jar),JNDI名称java:global / campaigner-ejb / campaigner-service / GeopoliticalServiceBean!com.dr_dee_sw.campaigner.service.GeopoliticalServiceLocal时出现错误必须先在weblogic-ejb-jar.xml部署描述符或此EJB的相应注释中设置其他JNDI名称,然后才能对其进行部署。”

public interface GeopoliticalService
{
...
}

@Local
public interface GeopoliticalServiceLocal extends GeopoliticalService
{
}

@Remote
public interface GeopoliticalServiceRemote extends GeopoliticalService
{
}

@TransactionManagement(value = TransactionManagementType.CONTAINER)
@TransactionAttribute(value = TransactionAttributeType.REQUIRED)
@Stateless
public class GeopoliticalServiceBean implements GeopoliticalServiceLocal,GeopoliticalServiceRemote
{
...
}
Run Code Online (Sandbox Code Playgroud)

更多信息:我减少了EJB-JAR文件campaigner-service.jar,以便其中仅包含一个bean,以及接口和异常。EAR文件campaigner-ejb.ear在主级别上仅包含EJB-JAR。它还具有包含支持库的“ lib”目录,但其中仅包含DAO和DTO jar以及第三方库。因此,对我来说,这似乎不是包装问题。

这是我第一个使用所有注释的应用程序,但看起来仍然很简单。我想念什么?

java java-ee ejb-3.0 weblogic12c

6
推荐指数
1
解决办法
6028
查看次数

Weblogic升级到12c:部署失败,因为url映射到多个servlet

我最近设置了一个新的Weblogic 12c环境.在部署我知道在Weblogic 11g中运行的应用程序时,我收到错误"Web应用程序中的url-pattern/resources/*映射到多个Servlet".

它所引用的映射位于正在部署的application.ear中的web.xml中,但它只映射一次:

  <servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>/resources/*</url-pattern>
  </servlet-mapping> 
Run Code Online (Sandbox Code Playgroud)

该项目不包含对url pattern/resources/*的任何其他引用,有人可以解释重复映射的来源以及我如何解决它?

我能找到的最接近的问题是:https://bugster.forgerock.org/jira/si/jira.issueviews :issue- html/OPENAM-7947​​/OPENAM-7947​​.html,已被标记为不可再现.

部署中的完整堆栈跟踪:

<Error> <Deployer> <BEA-149205> <Failed to initialize the application "<application_name>" due to error weblogic.application.ModuleException: weblogic.management.DeploymentException: [HTTP:101401]The url-pa
ttern /resources/* in web application <application_name> is mapped to multiple Servlets.
weblogic.application.ModuleException: weblogic.management.DeploymentException: [HTTP:101401]The url-pattern /resources/* in web application <application_name> is mapped to multiple Servlets.
        at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:192)
        at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:187)
        at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:83)
        at weblogic.application.utils.StateMachineDriver.nextStateInParallel(StateMachineDriver.java:144)
        at weblogic.application.internal.flow.ModuleStateDriver.parallelPrepare(ModuleStateDriver.java:46)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:75)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:55)
        at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:731)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45) …
Run Code Online (Sandbox Code Playgroud)

web.xml servlets weblogic weblogic12c

6
推荐指数
1
解决办法
6641
查看次数

Weblogic Server 何时支持 Java EE 8?

除了这里对 CY2018的引用之外……我发现很难弄清楚何时(或是否)Weblogic Server 版本将支持 Java EE 8?

weblogic weblogic12c java-ee-8 jakarta-ee

6
推荐指数
1
解决办法
898
查看次数

WebLogic 12c 上的 Apache CXF SOAP JAXB 问题

我们使用 Java 8、Apache CXF 作为 Spring Boot 之上的 SOAP 客户端来向 WS 发送 SOAP 消息。

如果应用程序部署为 Tomcat 8 上的 WAR,则应用程序运行良好,并且 SOAP 客户端使用正确的命名空间发送正确的 XML 消息。

如果在 Weblogic 12c 上部署相同的应用程序 WAR,则 CXF SOAP 客户端生成的 SOAP 消息缺少命名空间。

我们知道 WebLogic 可能使用了一些旧的 JAXB jar,这些 JAXB jar 负责从 Java 对象创建 XML 消息,它们与 Tomcat 服务器不同,这可能是我们看到此问题的原因。

我们也知道我们可以在 war 文件的 weblogic.xml 中指定 Weblogic 需要从 war 加载哪些 jars 以及直接从 Weblogic 库加载哪些依赖项,但是我们在 weblogic.xml 中尝试的每个组合都可以不行。

任何好的建议将不胜感激

带有 Apache CXF 的 Tomcat 服务器的示例 XML 输出

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
<env:Header/>
<env:Body>
    <event xmlns="http://www.test.com" xmlns:ns5="http://www.test2.com" xmlns:ns3="urn:test1:1423.15465:123123:namespace">
        <ns5:created-date-time>2020-08-12T08:02:35Z</ns5:created-date-time> …
Run Code Online (Sandbox Code Playgroud)

cxf jaxb weblogic12c spring-boot

6
推荐指数
1
解决办法
484
查看次数