Rribbit不支持直接部署进Weblogic,原因在于Weblogic解析jar文件的协议是zip,而其它如tomcat,jetty是jar协议。
解决办法如下:
import java.io.File;
import java.io.IOException;
import java.net.URL;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Enumeration;
import java.util.jar.JarFile;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import org.rribbit.creation.SpringBeanClassBasedListenerObjectCreator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author wangx
* @date Nov 4, 2015
* @version
*/
public class CustomListenerObjectCreator extends SpringBeanClassBasedListenerObjectCreator {
private static final Logger log = LoggerFactory.getLogger(SpringBeanClassBasedListenerObjectCreator.class);
/*
* (non-Javadoc)
*
* @see
* org.rribbit.creation.AbstractClassBasedListenerObjectCreator#getClasses
* (java.lang.String, boolean)
*/
@Override
protected Collection<Class<?>> getClasses(String packageName, boolean scanSubPackages) throws ClassNotFoundException, IOException {
String path = packageName.replace('.', '/');
Enumeration<URL> resources = getClassLoader().getResources(path);
Collection<Class<?>> classes = new ArrayList();
while (resources.hasMoreElements()) {
URL resource = (URL) resources.nextElement();
String filename = URLDecoder.decode(resource.getFile(), "UTF-8");
log.debug("Processing resource '{}' with filename '{}'", resource, filename);
if (resource.getProtocol().equals("jar")) {
String jarFilename = filename.substring(5, filename.indexOf("!"));
JarFile jarFile = new JarFile(jarFilename);
classes.addAll(findClassesInJarFile(jarFile, path, scanSubPackages));
} else if (resource.getProtocol().equals("zip")) {
String zipFilename = filename.substring(0, filename.indexOf("!"));
ZipFile jarFile = new ZipFile(zipFilename);
classes.addAll(findClassesInZipFile(jarFile, path, scanSubPackages));
} else {
File directory = new File(filename);
classes.addAll(findClassesInDirectory(directory, packageName, scanSubPackages));
}
}
return classes;
}
protected Collection<Class<?>> findClassesInZipFile(ZipFile jarFile, String path, boolean scanSubPackages) throws ClassNotFoundException {
log.debug("Scanning jarFile '{}' for classes in package '{}'", jarFile.getName(), path);
Collection<Class<?>> classes = new ArrayList<Class<?>>();
Enumeration<ZipEntry> jarEntries = (Enumeration<ZipEntry>) jarFile.entries();
while(jarEntries.hasMoreElements()) {
String entryName = jarEntries.nextElement().getName();
log.debug("Entry name: '{}'", entryName);
Pattern p;
if(scanSubPackages) {
p = Pattern.compile("(" + path + "/[\\w/]+)\\.class");
} else {
p = Pattern.compile("(" + path + "/\\w+)\\.class");
}
Matcher m = p.matcher(entryName);
if(m.matches()) {
String className = m.group(1).replaceAll("/", ".");
log.debug("Adding Class {}", className);
classes.add(Class.forName(className));
}
}
return classes;
}
}
<bean id="creator"
class="com.geone.its.CustomListenerObjectCreator">
<property name="packageNames">
<list>
<value>com</value>
</list>
</property>
<property name="scanSubpackages" value="true" />
</bean>
相关推荐
【WebLogic和MyEclipse集成配置详解】 WebLogic是Oracle公司的一款企业级应用服务器,而MyEclipse是一款强大的Java集成开发环境,特别适合于开发和部署Java EE应用程序。将两者集成可以方便地在MyEclipse中管理和...
MyEclipse与WebLogic集成调试设置
- 结合WSADIE工具,开发者可以更轻松地实现业务逻辑的构建与集成。 #### 五、人员参与的工作流/Human Workflow - **BEA WebLogic**: - 提供了一套基础的人工参与工作流管理系统,但对于高度定制化的工作流需求...
在某些场景下,可能需要结合两者的优点,即利用WebLogic的管理能力和高可用性,结合Tomcat的轻便性与性能。 集成过程的核心在于配置WebLogic集群和Tomcat代理。在WebLogic中创建一个集群,可以将多个服务器实例组织...
5. **安全管理**:Spring Security 可以与 WebLogic Server 的身份验证和授权机制集成,实现统一的安全策略。 通过将 Spring 的灵活性和轻量级特性与 WebLogic Server 的企业级功能相结合,开发者可以获得一个强大...
Apache与WebLogic的集成最新版本,实用型,适合初学者
测试结果表明,Tibco EMS与BEA WebLogic Server在HP-UX 11i v2环境下成功集成,且能够承受预期的负载,证明了该集成方案的有效性与稳定性。 #### WebLogic与Tibco EMS集成 Tibco EMS与BEA WebLogic Server的集成是...
### Linux下集成Apache与WebLogic知识点详解 #### 一、集成背景及假设条件 在Linux环境下集成Apache与WebLogic,主要是为了实现WebLogic服务器作为后端应用服务器,而Apache作为前端反向代理服务器的一种架构模式。...
系统集成方案 WebLogic 系统集成方案 WebLogic 是一个基于 WebLogic 应用服务器的系统集成解决方案,旨在提供一个可靠、可扩展的集成平台,满足企业级应用系统的需求。本文档将对系统集成方案 WebLogic 进行详细的...
这个"springboot集成weblogic的jms源码.zip"压缩包提供了将Spring Boot应用与WebLogic的JMS服务集成的示例代码。 首先,我们来看`JmsConfiguration.java`文件。这是一个配置类,通常用于设置与JMS相关的bean。在...
**P6Spy与WebLogic配置及SQLProfiler监控详解** P6Spy是一款开源的数据库监控工具,主要用于记录和分析应用程序对数据库的所有SQL操作。在Java应用环境中,如WebLogic服务器上,P6Spy可以帮助开发者和DBA监控SQL...
### WebLogic与MQ集成配置详解 #### 一、概述 在现代企业级应用环境中,中间件扮演着极其重要的角色,特别是在实现不同系统间的通信时。本文将详细介绍如何将Oracle WebLogic Server 10.3与IBM WebSphere MQ 6.0...
详细介绍了weblogic下载安装,部署,以及与eclipse集成
通过以上步骤,Apache 与 Weblogic 的整合可以成功实现,允许在 Apache 上透明地代理和管理多个在 Weblogic 服务器上的应用程序。这种集成提供了负载均衡、安全性和性能优化的能力,同时也便于管理和维护。
这个模块使得Apache能够与WebLogic进行通信,处理WebLogic Server的请求。`mod_wl_20.so`位于`WEBLOGIC_HOME/weblogic81/server/lib/linux/i686`(根据你的系统架构可能会有所不同)。确保Apache支持DSO(Dynamic ...
总的来说,Eclipse中集成WebLogic时选择合适的JDK是一项基础但至关重要的任务,需要考虑JDK与WebLogic的兼容性,以及Eclipse环境的正确配置。通过上述步骤,你应该能成功地在Eclipse中设置并运行WebLogic Server了。...
10. **持续集成与自动化**:WebLogic支持Maven、Gradle等构建工具,便于集成到持续集成/持续部署(CI/CD)流程中。 11. **云环境支持**:WebLogic也适用于公有云和私有云环境,如Oracle Cloud Infrastructure,提供...
在IT领域,特别是针对企业级应用服务器的选择与配置,Oracle WebLogic Server无疑占据了重要的位置。WebLogic Server作为一款高性能、可扩展的企业级Java应用服务器,提供了丰富的功能与服务,适用于构建、部署和...
weblogic和apache集成的so文件,64位版本
### WebLogic的安装与使用...通过以上步骤,不仅能够完成 WebLogic 的安装与配置,还能成功部署并运行基于 Hibernate 的 OA 项目,同时实现与 MySQL 数据库的有效集成。这对于企业级应用程序的开发和部署来说至关重要。