配struts2 osgi环境问题

问题描述

配置好struts2osgi环境后,tomcat启动后报错:[ERROR]Unabletoextractversionfrom[jar:file:/E:/BSOSGI/WebRoot/WEB-INF/lib/xwork-core-2.3.16.3.jar!/com/opensymphony/xwork2/],defaultingto'1.0.0'[ERROR]Unabletoextractversionfrom[jar:file:/E:/BSOSGI/WebRoot/WEB-INF/lib/struts2-osgi-plugin-2.3.16.3.jar!/org/apache/struts2/],defaultingto'1.0.0'[ERROR]Unabletoextractversionfrom[jar:file:/E:/BSOSGI/WebRoot/WEB-INF/lib/ognl-3.0.6.jar!/ognl/],defaultingto'1.0.0'[ERROR]Unabletoextractversionfrom[jar:file:/E:/BSOSGI/WebRoot/WEB-INF/lib/freemarker-2.3.19.jar!/freemarker/],defaultingto'1.0.0'[ERROR]Unabletoextractversionfrom[jar:file:/E:/BSOSGI/WebRoot/WEB-INF/lib/velocity-1.6.4.jar!/org/apache/velocity/],defaultingto'1.0.0'ERROR:Bundleorg.apache.struts.2-osgi-admin-bundle[3]Errorstartingfile:/E:/BSOSGI/WebRoot/WEB-INF/classes/bundles/2/struts2-osgi-admin-bundle-2.3.16.3.jar(org.osgi.framework.BundleException:Unresolvedconstraintinbundleorg.apache.struts.2-osgi-admin-bundle[3]:Unabletoresolve3.0:missingrequirement[3.0]osgi.wiring.package;(&(osgi.wiring.package=com.opensymphony.xwork2)(version>=2.3.0)))bunddle起不来,看错误好像是无法获得这些包的版本,不知道哪里有问题。用的struts-2.3.16.3、jdk1.6、tomcat7lib包结构:asm-3.3.jarasm-commons-3.3.jarasm-tree-3.3.jarcglib-2.2.2.jarcommons-io-2.2.jarcommons-lang-2.4.jarcommons-lang3-3.1.jarcommons-logging-1.1.3.jardom4j-1.6.1.jarfreemarker-2.3.19.jarjavassist-3.11.0.GA.jarlog4j-1.2.17.jarlog4j-api-2.0-rc1.jarlog4j-core-2.0-rc1.jarognl-3.0.6.jarorg.apache.felix.main-4.0.3.jarorg.apache.felix.shell-1.4.3.jarslf4j-api-1.7.5.jarslf4j-log4j12-1.7.5.jarstruts2-core-2.3.16.3.jarstruts2-osgi-plugin-2.3.16.3.jarvelocity-1.6.4.jarvelocity-tools-1.3.jarxwork-core-2.3.16.3.jarweb.xml配置如下:<filter><filter-name>struts2-prepare</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareFilter</filter-class></filter><filter><filter-name>struts2-execute</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2-prepare</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>struts2-execute</filter-name><url-pattern>/*</url-pattern></filter-mapping><listener><listener-class>org.apache.struts2.osgi.StrutsOsgiListener</listener-class></listener><listener><listener-class>org.apache.struts2.dispatcher.ng.listener.StrutsListener</listener-class></listener><context-param><param-name>TemplatePath</param-name><param-value>class://</param-value></context-param><context-param><param-name>struts.osgi.clearBundleCache</param-name><param-value>false</param-value></context-param>struts.xml配置:<struts><constantname="struts.objectFactory"value="osgi"/></struts>

解决方案

解决方案二:
我也遇到这个问题了,楼主解决了吗?
解决方案三:
懂这个的人貌似不多..
解决方案四:
楼主请参考http://blog.csdn.net/icecream0/article/details/7579496
解决方案五:
http://bill-xing.iteye.com/blog/793412这个链接的清单10中写道:如果无法连接上http://struts.apache.org/,那么在加载Struts的bundle时也将会出错,因为bundle与WebApplication的lib的加载路径不一致,无法从WebApplication的lib下面找到XXX.dtd文件。我按照这个去修改了,把"http://struts.apache.org/dtds/struts-2.0.dtd"直接改为本地的dtd,没用;还试了一种方法:在prefreces->catalog中添加"http://struts.apache.org/dtds/struts-2.0.dtd"与本地dtd关联,但是最后也没用。本来这样改了dtd之后,应该在struts2.xml中有提示的啊,但是也没有提示。然后在https://github.com/cenobites/struts2-json-plugin中提到:TofixthisaddthislinetoMANIFEST.MF:DynamicImport-Package:es.cenobit.struts2.json.annotationsOrifusingTheApacheFelixmavenplugin(seebelowfordetails):<DynamicImport-Package>es.cenobit.struts2.json.annotations</DynamicImport-Package>试着改了一下,也是没用!望高手解答啊!!
解决方案六:
引用3楼baohuan_love的回复:

楼主请参考http://blog.csdn.net/icecream0/article/details/7579496

这篇文章跟这个话题有关吗?
解决方案七:
我将struts的包换成2.3.4,包括struts-ogsi-plugin也换成2.3.4.这个错就没了,用struts2.3.16发现拿不到相关jar的version。在FelixOsgiHost的addExportedPackages方法中,你可以debug下。

时间: 2024-09-27 14:43:18

配struts2 osgi环境问题的相关文章

javaweb-struts2不能运行,但是其他web都能正常运行

问题描述 struts2不能运行,但是其他web都能正常运行 刚学web不久,跟这王刚那本书学web,但是到了struts2就不能运行.总是404. 有导包 2014-5-25 9:58:18 org.apache.catalina.core.AprLifecycleListener init 信息: The Apache Tomcat Native library which allows optimal performance in production environments was n

struts 2求助

问题描述 用MyEclipse8.5自动配置Struts2运行后提示错误,试了很多方法真心不知道怎么做啊!!!求大神给予解答啊!!!严重:DispatcherinitializationfailedUnabletoloadconfiguration.-bean-jar:file:/G:/JavaWapTest/.metadata/.me_tcat/webapps/FristWAPDemo/WEB-INF/lib/struts2-gxp-plugin-2.3.20.jar!/struts-plug

配置管理-struts2把Action配成login就报错,配成其他的就不会,这是为何?

问题描述 struts2把Action配成login就报错,配成其他的就不会,这是为何? jsp代码,就是在body上加个表单,表单内容如下: <form action=""login.action"" method=""post""> <table> <tr> <td>用户名:</td> <td><input type=""te

使用Felix和Struts2开发Web应用

简介: 本文首先对 OSGi 和 Felix 进行了简要的介绍,然后通过一个示例详 细描述了如何使用 Felix 和 Struts 开发 Web 应用,同时演示了 OSGi 的模块 化及动态部署特性.随后,讲解了 OSGi bundles 管理常用的命令操作,以及在 开发过程中的几个常见的问题的解决方法. 引言 Open Service Gateway Initiative(OSGi) 是一个针对 Java 动态模块开发的 规范.基于中间件的 OSGi 技术提供了一个面向服务,基于组件的开发环境

Unmi的Struts2学习笔记(四)

在这个陌生的城市里,的确承受着巨大的压力.房东的驱赶与无理的加价,想 置个家电须顾及到搬迁.也开始学会了算计着过活,两块五与三块的公交,宁愿 等待与拥挤,就连省下一顿饭钱都能暗自庆幸.周末了,老老实实呆在家里吧! 1. 按这个顺序加载 Struts2 的常量,struts-default.xml.struts- plugin.xml.struts.xml.web.xml:后加载的会覆盖前面的同名常量.强烈不推 荐在 web.xml 中配置 Struts2 常量. 2. Struts1 中有一种

遍历-Struts2拦截器记录日志出现一些bug

问题描述 Struts2拦截器记录日志出现一些bug 自己在写一个小工程,想用拦截器实现记录日志的功能,就是没点一次操作记录一条日志,拦截器配好了,但是每次操作都会记录两条一样的数据,我Strut.xml是method跳method,(比 如先更改数据在遍历所有数据)如果改成method的跳jsp会记录一条更改数据操作,,但是感觉这样展现效果不是很好,用debug调试点一次方法拦截器走了两次,有没有好点的解决方法,在线等 解决方案 http://blog.sina.com.cn/s/blog_5

OSGI的dependency plug问题

问题描述 大家好,最近一个项目中用到了OSGI框架,是已经开发了一部分的程序,源码配起来后OSGI依赖的一些Plugin和导入的一些包找不到,在Manifest.mf文件中的配置如下:Require-Bundle:org.springframework.aop;bundle-version="2.5.6",org.springframework.core;bundle-version="2.5.6",org.apache.commons.logging;bundle

javaweb-关于Struts2注解配置json问题。

问题描述 关于Struts2注解配置json问题. struts2的配置文件: <action name="subjectAction" class="com.H1.action.SubjectAction" method="doSubject"> <result type="json" > <param name="root">resultObj</param&g

MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3

原文http://www.cnblogs.com/AXDY-QIN/archive/2013/01/21/SSH.html 用MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3 1.         配置Tomcat 配置Tomcat所在路径 配置Tomcat使用JDK版本 如果Tomcat为7.0则添加Tomcat-juli.jar包 2.         new一个web project. 2.右键项目,为项目添加Struts支持.   点击F