`
leadyu
  • 浏览: 52345 次
  • 性别: Icon_minigender_1
  • 来自: 广州,福州
文章分类
社区版块
存档分类
最新评论

Jwebap项目(六)——plugin部署的设计讨论

阅读更多
Jwebap(jwebap介绍:http://www.iteye.com/topic/165593,jwebap.sourceforge.net)准备在0.6.*版本,实现初步的plugin管理,在plugin架构的基础上扩展jwebap的功能,这里专门讨论下关于部署管理的设计,欢迎大家提意见

Jwebap的Plugin部署设计包括:


可视化部署——Jwebap控制台

1)支持对plugin的界面部署,可以移除plugin和部署新的plugin

2)Component的参数可在界面配置,可以配置Component开关

部署方式

1)Jwebap分为core包和各种plugin包,在jwebap.xml里面可以配置{ *plugin-ref , *component , *action , *deispatcher}

2)plugin包的Meta-INF目录存放plugin.xml,配置{*component , *action , *deispatcher}
默认jwebap.xml里面只配置plugin-ref,以及core包需要的action和deispatcher,当在控制台修改了plugin的参数(比如JdbcComponent的driver-class参数),则会保存在jwebap.xml中

3)jwebap.xml配置的同名component,action,deispatcher优先于各plugin的配置

4)在jwebap控制修改了部署参数,暂时不支持刷新到RuntimeContext,必须重起Server方能生效,或者在第一次部署时手工修改配置文件

  • 描述: plugin deploy
  • 大小: 68.7 KB
分享到:
评论
3 楼 longmiaost 2008-09-19  
[ERROR,ContextLoader,main] Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: Line 3 in XML document from ServletContext resource [/WEB-INF/jwebap.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Document root element "jwebap", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "jwebap", must match DOCTYPE root "null".
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)



我在布置之后tomcat都启不起了,提示上面的错误,怎么解决啊???
2 楼 leadyu 2008-04-07  
当时,把Servlet和Listner分开,主要是考虑到Listner的加载顺序更前,在和spring等应用一起使用时可以保证先加载,避免一些类加载可能出现的问题。不过,这块是可以考虑进行一些简化
1 楼 javatar 2008-04-05  
关于部署, Jwebap的一个目标是简化配置, 基于此提一个建议:

Listener, Filter, Servlet是否可以三合一为Filter. 这样用户配置起来会方便一些

原配置:
<context-param>
	<param-name>config</param-name>
	<param-value>/WEB-INF/jwebap.xml</param-value>
</context-param>
<listener>
	<listener-class>org.jwebap.core.JwebapListener</listener-class>
</listener>
<filter>
	<filter-name>PageDetectFilter</filter-name>
	<filter-class>org.jwebap.plugin.http.DetectFilter</filter-class>
	<init-param>
		<param-name>excludeUrls</param-name>
		<param-value>/detect;/detect/*;*.js;*.jpg;*.htm;*.html;*.gif;*.png;*.css;*.swf</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>PageDetectFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
	<servlet-name>detect</servlet-name>
	<servlet-class>org.jwebap.ui.controler.JwebapServlet</servlet-class>
</servlet>
<servlet-mapping>
	<servlet-name>detect</servlet-name>
	<url-pattern>/detect/*</url-pattern>
</servlet-mapping>


改成:
<filter>
	<filter-name>JwebapFilter</filter-name>
	<filter-class>org.jwebap.web.JwebapFilter</filter-class>
	<init-param>
		<param-name>config</param-name>
		<param-value>/WEB-INF/jwebap.xml</param-value>
	</init-param>
	<init-param>
		<param-name>detect</param-name>
		<param-value>/detect</param-value>
	</init-param>
	<init-param>
		<param-name>excludeUrls</param-name>
		<param-value>*.js;*.jpg;*.htm;*.html;*.gif;*.png;*.css;*.swf</param-value>
	</init-param>
</filter>
<filter-mapping>
	<filter-name>JwebapFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>


然后在Filter的init方法中处理原Listener的工作,
在Filter拦截/detect的请求, 派谴给原Servlet相关处理类.
并且在excludeUrls不需要再写"/detect;/detect/*;", 可以在Filter内部自动添加上.

如果要保持原有类职责分明, 也可以加一个扩展包, 专门处理简化API.

相关推荐

    jwebap_0.6.1

     2) 部署和使用非常的简单,整个Jwebap的部署只需要部署jwebap_core_**.jar以及需要使用的各种plugin_**.jar,然后配置 jwebap.xml和web.xml就可以完成所有的部署,比起绝大多数的profiling容易的多。 同时Jwebap...

    J2EE项目实训——Struts框架技术.rar

    11. ** strut2-struts1-plugin**:如果项目中还包含Struts1的遗留代码,可以通过Struts2提供的Struts1插件无缝集成两个框架。 12. ** strut2-dojo-plugin**:Struts2还提供了Dojo插件,便于与Dojo JavaScript库集成...

    maven-jboss-plugin部署EJB

    【标题】"maven-jboss-plugin部署EJB"涉及到的是使用Maven插件来管理和部署Java企业版(Java EE)中的EJB(Enterprise JavaBeans)组件到JBoss应用服务器的过程。这一技术对于开发者来说,是将Java后端服务集成到...

    Java课程实验 Spring Boot 项目的打包和部署

    2. 部署项目: - 将生成的JAR文件复制到目标服务器或部署环境 3. 启动项目: - 在目标服务器或部署环境中,通过命令行或终端运行以下命令启动Spring Boot应用程序 4. 访问应用: - 启动应用程序后,可以通过...

    maven项目下用 jetty 启动热部署

    当我们使用Maven构建Java Web项目时,结合Jetty服务器,可以实现项目的热部署功能,即在开发环境中修改代码后无需重新启动服务器,改动就能实时生效,极大地提高了开发效率。 在Maven项目中启用Jetty热部署,主要...

    Struts2.1零配置——convention-plugin

    Struts2.1引入了Convention Plugin,以实现框架的零配置目标,替代之前的Codebehind Plugin。这个插件通过约定优于配置的原则简化了Struts2的应用开发,减少了XML配置文件的需求。以下是对Convention Plugin主要特性...

    Maven项目中的热部署

    4. Maven的maven-eclipse-plugin或maven-idea-plugin: 这些Maven插件可以帮助你生成IDE的项目文件,虽然它们现在已经不再维护,但在过去它们可以辅助实现热部署,通过与IDE的配合,自动跟踪源代码变化。 5. Spring ...

    VS2010——MayaPluginWizard2.0不能用的解决方法

    5. **修复Visual Studio安装**:如果MayaPluginWizard未显示在Visual Studio的“新建项目”对话框中,可能是因为VS安装出现问题。尝试修复或重新安装VS2010,确保选择了"Visual C++"工作负载,因为插件开发通常涉及...

    SpringBoot项目如何实现热部署.pdf

    SpringBoot项目热部署是开发过程中一个非常实用的功能,它能够帮助开发者在代码修改后自动重新构建和刷新应用,极大地提高了开发效率。以下是实现SpringBoot项目热部署的具体步骤和相关知识点: 1. **添加Spring ...

    tomcat服务器上部署项目

    部署项目主要有以下几种方式: 1. **WAR文件部署**:如果你的应用是一个完整的WAR文件,可以直接将其放入`webapps`目录下。Tomcat会自动检测到新的WAR文件,并在后台解压并部署。等待一段时间后,应用就可以通过`...

    基于C++快速使用TensorRT来部署模型项目源码

    本项目源码以C++为基础,教你如何快速利用TensorRT来部署模型,实现高效的计算性能。 首先,TensorRT的核心功能是构建一个高效的执行图,通过解析ONNX(Open Neural Network Exchange)或TensorFlow、PyTorch等框架...

    hadoop-eclipse-plugin1.2.1 and hadoop-eclipse-plugin2.8.0

    本文将详细介绍这两个版本的Hadoop Eclipse Plugin——1.2.1和2.8.0。 首先,Hadoop-Eclipse-Plugin 1.2.1是针对较早期的Hadoop版本设计的。这个版本的插件支持Hadoop 1.x系列,适配的是Hadoop MapReduce的旧版API...

    maven plugin maven plugin

    通过配置 `maven-site-plugin` 可以创建项目的网站和文档,`maven-javadoc-plugin` 用于生成 API 文档,`maven-deploy-plugin` 则负责将构建好的工件部署到远程仓库。 Ant 是一个广泛使用的构建工具,它具有灵活性...

    java web 项目 自动部署

    Java Web项目的自动部署是开发流程中的重要一环,它能够极大地提高开发效率,减少手动部署的时间和出错可能性。在本项目中,我们利用Apache Tomcat服务器进行自动化部署,具体的步骤和关键知识点如下: 首先,我们...

    Maven使用tomcat8-maven-plugin插件.docx

    tomcat8-maven-plugin 插件是一个非常有用的插件,它可以帮助开发者快速部署项目到 Tomcat 服务器上。使用该插件需要在 POM 文件中添加插件依赖项,并配置插件仓库信息。在本文中,我们详细介绍了 tomcat8-maven-...

    一个PlugIn的例子

    这通常意味着有良好的模块化设计,每个插件可以独立开发、测试和部署,而不影响其他部分。通过这种方式,开发者可以构建高度可定制的软件,用户可以根据需要选择安装哪些插件。 在实际开发中,一个插件系统可能包含...

    maven-site-plugin和 maven-scr-plugin同时使用时site plugin不能删除target中OSGI-INF\\serviceCo

    在本文中,我们将深入探讨这两个插件的用途以及它们在实际项目中的交互问题,特别是当它们同时使用时可能出现的问题——site plugin无法删除target目录下的OSGI-INF/serviceComposite目录。 首先,让我们了解maven-...

    基于Java的smart-doc-maven-plugin官方maven插件设计源码

    本项目是基于Java的smart-doc-maven-plugin官方maven插件设计源码,包含43个文件,其中包括27个Java源文件、7个Markdown文档、2个JSON文件、1个gitignore文件、1个LICENSE文件、1个NOTICE文件、1个PNG图片文件、1个...

    SpringBoot项目使用maven-assembly-plugin根据不同环境打包成tar.gz或者zip

    `maven-assembly-plugin`是Maven的一个插件,用于生成项目的归档文件,如tar.gz或zip,这在分发和部署软件时非常有用。本篇将详细介绍如何利用`maven-assembly-plugin`在Spring Boot项目中实现这个功能。 首先,`...

Global site tag (gtag.js) - Google Analytics