`
wwwxxx286
  • 浏览: 50307 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Rribbit 与Weblogic集成

阅读更多

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>

0
1
分享到:
评论

相关推荐

    weblogic和MyEclipse集成配置

    【WebLogic和MyEclipse集成配置详解】 WebLogic是Oracle公司的一款企业级应用服务器,而MyEclipse是一款强大的Java集成开发环境,特别适合于开发和部署Java EE应用程序。将两者集成可以方便地在MyEclipse中管理和...

    MyEclipse与WebLogic集成调试设置

    MyEclipse与WebLogic集成调试设置

    WebSphere与Weblogic集成产品比较.pdf

    - 结合WSADIE工具,开发者可以更轻松地实现业务逻辑的构建与集成。 #### 五、人员参与的工作流/Human Workflow - **BEA WebLogic**: - 提供了一套基础的人工参与工作流管理系统,但对于高度定制化的工作流需求...

    weblogic集成多个Tomcat服务,自动分配tomcat服务,80端口访问

    在某些场景下,可能需要结合两者的优点,即利用WebLogic的管理能力和高可用性,结合Tomcat的轻便性与性能。 集成过程的核心在于配置WebLogic集群和Tomcat代理。在WebLogic中创建一个集群,可以将多个服务器实例组织...

    Spring与WebLogic Server的集成

    5. **安全管理**:Spring Security 可以与 WebLogic Server 的身份验证和授权机制集成,实现统一的安全策略。 通过将 Spring 的灵活性和轻量级特性与 WebLogic Server 的企业级功能相结合,开发者可以获得一个强大...

    Apache与WebLogic的集成.doc

    Apache与WebLogic的集成最新版本,实用型,适合初学者

    tibco与WebLogic整合

    测试结果表明,Tibco EMS与BEA WebLogic Server在HP-UX 11i v2环境下成功集成,且能够承受预期的负载,证明了该集成方案的有效性与稳定性。 #### WebLogic与Tibco EMS集成 Tibco EMS与BEA WebLogic Server的集成是...

    linux下集成Apache与weblogic

    ### Linux下集成Apache与WebLogic知识点详解 #### 一、集成背景及假设条件 在Linux环境下集成Apache与WebLogic,主要是为了实现WebLogic服务器作为后端应用服务器,而Apache作为前端反向代理服务器的一种架构模式。...

    系统集成方案weblogic

    系统集成方案 WebLogic 系统集成方案 WebLogic 是一个基于 WebLogic 应用服务器的系统集成解决方案,旨在提供一个可靠、可扩展的集成平台,满足企业级应用系统的需求。本文档将对系统集成方案 WebLogic 进行详细的...

    springboot集成weblogic的jms源码.zip

    这个"springboot集成weblogic的jms源码.zip"压缩包提供了将Spring Boot应用与WebLogic的JMS服务集成的示例代码。 首先,我们来看`JmsConfiguration.java`文件。这是一个配置类,通常用于设置与JMS相关的bean。在...

    p6spy 在weblogic中的配置 以及使用sqlprofiler监控

    **P6Spy与WebLogic配置及SQLProfiler监控详解** P6Spy是一款开源的数据库监控工具,主要用于记录和分析应用程序对数据库的所有SQL操作。在Java应用环境中,如WebLogic服务器上,P6Spy可以帮助开发者和DBA监控SQL...

    weblogic,mq集成配置

    ### WebLogic与MQ集成配置详解 #### 一、概述 在现代企业级应用环境中,中间件扮演着极其重要的角色,特别是在实现不同系统间的通信时。本文将详细介绍如何将Oracle WebLogic Server 10.3与IBM WebSphere MQ 6.0...

    weblogic安装部署集成

    详细介绍了weblogic下载安装,部署,以及与eclipse集成

    Apache与Weblogic整合说明

    通过以上步骤,Apache 与 Weblogic 的整合可以成功实现,允许在 Apache 上透明地代理和管理多个在 Weblogic 服务器上的应用程序。这种集成提供了负载均衡、安全性和性能优化的能力,同时也便于管理和维护。

    linux下集成Apache与weblogic.pdf

    这个模块使得Apache能够与WebLogic进行通信,处理WebLogic Server的请求。`mod_wl_20.so`位于`WEBLOGIC_HOME/weblogic81/server/lib/linux/i686`(根据你的系统架构可能会有所不同)。确保Apache支持DSO(Dynamic ...

    Eclipse中集成weblogic时的JDK选择

    总的来说,Eclipse中集成WebLogic时选择合适的JDK是一项基础但至关重要的任务,需要考虑JDK与WebLogic的兼容性,以及Eclipse环境的正确配置。通过上述步骤,你应该能成功地在Eclipse中设置并运行WebLogic Server了。...

    weblogic weblogic weblogic

    10. **持续集成与自动化**:WebLogic支持Maven、Gradle等构建工具,便于集成到持续集成/持续部署(CI/CD)流程中。 11. **云环境支持**:WebLogic也适用于公有云和私有云环境,如Oracle Cloud Infrastructure,提供...

    Weblogic 套件和Weblogic 标准版 Weblogic 企业版 功能对比

    在IT领域,特别是针对企业级应用服务器的选择与配置,Oracle WebLogic Server无疑占据了重要的位置。WebLogic Server作为一款高性能、可扩展的企业级Java应用服务器,提供了丰富的功能与服务,适用于构建、部署和...

    weblogic和apache集成的so文件

    weblogic和apache集成的so文件,64位版本

    WebLogic的安装与使用

    ### WebLogic的安装与使用...通过以上步骤,不仅能够完成 WebLogic 的安装与配置,还能成功部署并运行基于 Hibernate 的 OA 项目,同时实现与 MySQL 数据库的有效集成。这对于企业级应用程序的开发和部署来说至关重要。

Global site tag (gtag.js) - Google Analytics