当我试图运行weblogic服务器12c时,它抛出此错误,无法启动.
<Apr 16, 2013 2:42:57 PM IST> <Warning> <HTTP> <BEA-101384> <WLServlet annotation is deprecated, please use servlet 3.0 annotation instead. App:acsportal@acs-portal.war, Class:oracle.adfinternal.view.faces.activedata.AdsServlet>
<Apr 16, 2013 2:42:58 PM IST> <Error> <Deployer> <BEA-149205> <Failed to initialize the application "acsportal" due to error weblogic.application.ModuleException: Context path '' is already in use by the module: / application: acs-portal
weblogic.application.ModuleException: Context path '' is already in use by the module: / application: acs-portal
at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:732)
at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:188)
at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:83)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:172)
Truncated. see …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用带有Hibernate 5.x和Spring-data-jpa 1.9.4的WebLogic 12.2.1部署EAR文件.在Weblogic 12.1.3上部署了相同的配置.JPA 2.1用于它们.
Weblogic正在抛出一个ClassNotFoundException查找QueryDsl库,该库对spring-data是可选的:
weblogic.management.DeploymentException: java.lang.ClassNotFoundException: com.mysema.query.types.path.PathBuilder
Run Code Online (Sandbox Code Playgroud)
Spring-data的清单甚至将此jar引用为可选.由于Oracle没有发布任何源代码,因此我无法完全调试问题.在我ApplicationContext实际初始化任何Spring连接之前,它似乎很久就会抛出一个错误.
相同的配置在Websphere 8.5.5上部署得很好.使用Weblogic 12.2.1似乎存在某种部署冲突,但我无法发现任何其他有意义的差异.有没有人遇到类似的东西?
我正在努力应对以下情况:
在我们当前运行在Tomcat 7.0.64上的Web应用程序中,我们设法通过Java在自己的类的帮助下包含一个JSP页面CharArrayWriterResponse implementing HttpServletResponseWrapper.
这样做的原因是我们将生成的HTML包装成AJAX响应所需的JSON.
依赖关系:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
代码示例:
// somewhere in servlet doPost()/doGet()
try (PrintWriter out = response.getWriter()) {
out.println(getJspAsJson(request, response));
}
private static String getJspAsJson(HttpServletRequest request, HttpServletResponse response) {
String html = getHtmlByJSP(request, response, "WEB-INF/path/to/existing.jsp");
Gson gson = new GsonBuilder().disableHtmlEscaping().create();
return "{\"results\":" + gson.toJson(html) + "}";
}
public static String getHtmlByJSP(HttpServletRequest request, HttpServletResponse response, String jsp) {
CharArrayWriterResponse customResponse = new CharArrayWriterResponse(response);
request.getRequestDispatcher(jsp).include(request, customResponse);
return customResponse.getOutput(); …Run Code Online (Sandbox Code Playgroud) 我有基于Spring的应用程序和Ehcache JMS复制.我需要将此应用程序部署到Weblogic 12,但是有以下错误导致部署失败:
javax.jms.InvalidSelectorException: weblogic.messaging.kernel.InvalidExpressionException:
Expression : "cacheManagerUniqueId <> 600767500
Run Code Online (Sandbox Code Playgroud)
怎么了?
的weblogic-application.xml中
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.3/weblogic-application.xsd">
<!--Configure the FilteringClassLoader to specify a certain package is loaded from an application-->
<wls:prefer-application-packages>
<!--<wls:package-name>javax.validation.*</wls:package-name>
<wls:package-name>javax.validation.spi.*</wls:package-name>-->
<wls:package-name>javax.persistence.spi.*</wls:package-name>
<wls:package-name>javax.persistence.criteria.*</wls:package-name>
<wls:package-name>javax.persistence.metamodel.*</wls:package-name>
<wls:package-name>javax.persistence.*</wls:package-name>
<wls:package-name>org.springframework.*</wls:package-name>
<wls:package-name>org.hibernate.validator.*</wls:package-name>
<wls:package-name>org.hibernate.*</wls:package-name>
<wls:package-name>net.sf.ehcache.*</wls:package-name>
<!--<wls:package-name>antlr.*</wls:package-name>-->
<wls:package-name>org.codehaus.jackson.*</wls:package-name>
<wls:package-name>com.fasterxml.jackson.*</wls:package-name>
<wls:package-name>org.apache.log4j.*</wls:package-name>
<wls:package-name>org.slf4j</wls:package-name>
<!--ftp-->
<wls:package-name>org.apache.commons.net.*</wls:package-name>
<wls:package-name>org.apache.commons.lang.*</wls:package-name>
<wls:package-name>com.thoughtworks.xstream.*</wls:package-name>
<wls:package-name>com.google.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
Run Code Online (Sandbox Code Playgroud)
Maven依赖:
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-jmsreplication</artifactId>
<version>0.5</version>
</dependency>
<dependency>
<groupId>com.googlecode.ehcache-spring-annotations</groupId>
<artifactId>ehcache-spring-annotations</artifactId>
<version>1.2.0</version>
<exclusions>
<exclusion>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.11</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId> …Run Code Online (Sandbox Code Playgroud) 我正在尝试确定我的WebLogic 12c正在使用的当前版本的Mojarra.我该怎么知道呢?
我将它部署到Weblogic12C后访问示例springBoot应用程序时遇到问题.使用springBoot嵌入式Tomcat服务器可以正常工作.
重现步骤:按照以下步骤获取springBoot"入门"应用程序代码:https://spring.io/guides/gs/spring-boot/
此时,您可以通过运行gradle"bootRun"任务来验证一切正常,这些任务在嵌入式Tomcat服务器中启动应用程序.一旦tomcat启动,浏览到localhost:8080 /并看到你得到"来自Spring Boot的问候!"
java版"1.7.0_45"Java(TM)SE运行时环境(版本1.7.0_45-b18)Java HotSpot(TM)服务器VM(版本24.45-b08,混合模式)
此时,您将看到应用程序部署正常: - 再次单击"部署",看到您的"完整"springBoot应用程序已列出并且活动 - 单击"完成"并在此页面上注意:"上下文根:/完成".注意:WebLogic文档说,如果有在weblogic.xml中没有定义上下文根,那么它使用war文件名(减去的.war)
如果您尝试访问localhost:7001 /完成的springBoot应用程序,则会获得403!
Error 403--Forbidden
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.4.4 403 Forbidden
The server understood the request, but is refusing to fulfill it. Authorization will not help and the request SHOULD NOT be repeated. If the request …Run Code Online (Sandbox Code Playgroud) 我必须 在Weblogic 12c服务器(12.2.1)上使用两者(奇怪的是......)" prefer-web-inf-classes "和" web- to -application-packages"的weblogic.xml属性
它是基于Jersey 1.9的REST应用程序.*(Jersey 1.x JAX-RS RI)和Guice.
1.为什么要使用:prefer-web-inf-classes
如果你有多个WAR,你必须在war/lib的级别放置guice-jersey/guice的库,否则你会得到Multibindings Error.
它必须表明prefer-web-inf-classes为true. 这种方式正常!我试图以相同的方式使用prefer-application-packages和package(com.sun.jersey.guice.spi.container.servlet /com.google.inject.servlet等等),但没办法.
注意:无法在EAR级别排除此库.
2.为什么要使用:prefer-application-packages
要在Weblogic 12c(12.2.1)上使用Jersey 1.x JAX-RS RI,所以我必须指出以下包(Weblogic使用Jersey 2的其他方式,以及不同版本的Jackson库等)
如果以这种方式表示,它在Jersey 1.X上完美运行..我已分别探讨了两场战争,并且工作得很好......但是,请记住我的朋友我有两场战争......所以....
摘要
我不能同时使用这两个属性(在weblogic.xml上使用这两个属性部署错误..),但它需要:
问题:如何将两者结合使用其中之一?
我正在创建一个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) 我安装了weblogic 12.2.1.即最新版本并低于错误
<May 10, 2016 10:21:05 PM IST> <Error> <Deployer> <BEA-149205> <Failed to initia
lize the application "my-app-Snapshot" due to error web
logic.application.ModuleException: weblogic.management.DeploymentException: [HTT
P:101401]The url-pattern WSATCoordinator in web application my-app-Snapshot.war is mapped to multiple Servlets.
weblogic.application.ModuleException: weblogic.management.DeploymentException: [
HTTP:101401]The url-pattern WSATCoordinator in web application my-app-Snapshot.war is mapped to multiple Servlets.
at weblogic.application.internal.ExtensibleModuleWrapper.prepare(Extensi
bleModuleWrapper.java:114)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(Modu
leListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleSta
teDriver.java:196)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleSta
teDriver.java:191)
at weblogic.application.utils.StateMachineDriver$ParallelChange.run(Stat
eMachineDriver.java:83)
Truncated. see log file for complete stacktrace
Caused By: weblogic.management.DeploymentException: [HTTP:101401]The url-pattern
WSATCoordinator …Run Code Online (Sandbox Code Playgroud) 我在weblogic中部署了一个ear,并将log4j2.xml logPath设置为
<Property name="logPath">some_path_1<Property>
Run Code Online (Sandbox Code Playgroud)
和记录器定义为
<Logger name="a.b.c.d" level="INFO" />
Run Code Online (Sandbox Code Playgroud)
在这个ear/lib中,有一个包含log4j2.xml的jar,logPath属性定义为
<Property name="logPath">some_path_2<Property>
Run Code Online (Sandbox Code Playgroud)
和一个包装结构非常相似的记录器
<Logger name="a.b.c" level="INFO" />
Run Code Online (Sandbox Code Playgroud)
log4j2.xml都配置为具有不同的日志文件名.但两者的日志都在路径some_path_2中,并且在该jar中定义了文件名
如何确保两个日志记录输出按照定义单独进行?
我的耳朵结构就像
ear
|--lib
|--|--abc.jar
|--|--|--log4j2.xml //the one thats getting loaded
|--xyz.war
|--|--WEB-INF
|--|--|--classes
|--|--|--|--log4j2.xml // the one I want
Run Code Online (Sandbox Code Playgroud)
Edit1:我在包含war的web.xml中添加了以下内容,但它没有帮助
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>/WEB-INF/classes/log4j2.xml</param-value>
</context-param>
Run Code Online (Sandbox Code Playgroud)
编辑2:我也试过这个,发现这是间歇性的
ear
|--lib
|--|--abc.jar
|--|--|--log4j2.xml //the one thats getting loaded
|--|--xyz.jar
|--|--|--log4j2.xml //the one I want.. works but not always.Does classloader loads the jars alphabetically?
|--xyz.war
|--|--WEB-INF
|--|--|--classes
|--|--|--|--log4j2.xml // the one I want
Run Code Online (Sandbox Code Playgroud)