更新 tomcat8似乎在这种情况下工作,因为我可以根据需要打开/ manager/page.虽然这并没有解决原来的问题状态,但我建议你在这种情况下使用debian backports中的tomcat8!
Raspbian提供了当前的Java 8版本
root@raspberrypi:/etc/apt# java -version
java version "1.8.0"
Java(TM) SE Runtime Environment (build 1.8.0-b132)
Java HotSpot(TM) Client VM (build 25.0-b70, mixed mode)
Run Code Online (Sandbox Code Playgroud)
安装tomcat 7后我恢复到debian backports提供的tomcat7版本
root@raspberrypi:/etc/apt# dpkg -l |grep tomcat
ii libtomcat7-java 7.0.56-1~bpo70+2 all Servlet and JSP engine -- core libraries
ii tomcat7 7.0.56-1~bpo70+2 all Servlet and JSP engine
ii tomcat7-admin 7.0.56-1~bpo70+2 all Servlet and JSP engine -- admin web applications
ii tomcat7-common 7.0.56-1~bpo70+2 all Servlet and JSP engine -- common files
Run Code Online (Sandbox Code Playgroud)
根据tomcat7没有编译jsp的例子应该可行.但是,这不是这种情况,因为管理器页面给我留下了以下错误:
org.apache.jasper.JasperException: …Run Code Online (Sandbox Code Playgroud) 我已经为我的e4应用程序定义了一个全局命令,即add命令.所以,正如你所看到的那样
该命令将在整个应用程序(1)中使用,并在上下文切换到resp时激活repsective处理程序.(2)和(3)中的部分.
现在我缺少的是,可以更新所有UI贡献,如(4)分配给命令(1)的信息,如(2)添加联系人,以及切换到(3)添加帐户时的信息.
考虑命令的实际上下文(哪个处理程序处于活动状态等),更新命令的所有UI贡献的一般建议方法是什么.在Eclipse 3.x中,我们有类似IElementUpdater的东西,它负责进行相应的更新.
谢谢你的提示!- 在Eclipse论坛中平行讨论
我一直致力于寻找解决方案,并在我的博客中概述了当前的状态.
我想实现对位于视图工具栏中的处理程序菜单的完全动态菜单贡献.在Eclipse 3中,可以将"dynamic"添加为org.eclipse.ui.menus对Menu的贡献!
我已经了解了www.vogella.com/blog/2010/10/26/processors-e4-model,解释了如何通过处理器模型扩展动态地为菜单做出贡献,但我说的是一个完全动态的菜单实现,它改变了在每次呼叫时.子菜单.如前所述,通过动态菜单贡献和isDynamic()集合在Eclipse 3.x中实现这一点没有问题.
我已经尝试了几种方法:
开放,未经验证的解决方案
我现在已经敲打了一段时间,但似乎无法理解E4中这个问题的正确实现.
- Eclipse论坛中也提出了这个问题- 动态菜单贡献
-----更新
到目前为止,我尝试了一种不同的方法:
我在菜单中添加了HandledToolItem(请参见下图)

并使用以下代码我试图干扰菜单构建方式,其中代码由resp调用.命令处理程序在图像中引用.
@CanExecute
public boolean canExecute(@Optional MApplication application) {
System.out.println("CanExecute Counter="+counter);
// --- 1 ---
// Find the required MMenu Entry in the Application Model
if(application == null) return true;
EModelService modelService = (EModelService) application.getContext().get(EModelService.class.getName());
MPart part = (MPart) modelService.find("at.medevit.emr.contacts.ui.contactselector", application);
List<MToolBarElement> lmte = part.getToolbar().getChildren();
HandledToolItemImpl htil = null; …Run Code Online (Sandbox Code Playgroud)