天道酬勤,学无止境

需要示例代码解释 Tomcat 中的 Workmanager(Need sample code explaning Workmanager in Tomcat)

问题

我想知道如何在 Tomcat 7 中使用 WorkManager。我遇到了开源库Foo-CommonJ,但没有找到解释用法的示例代码。 FooWorkManager 构造函数的输入参数是commonj.work.work 类的一个实例,因为没有人提供commonj.work.work类(tomcat 和foo-commonj 都没有)。 基本上我需要一个示例代码来解释在 tomcat 中 WorkManager (FooCommonj jar) 的用法。 如果 Foo-Commonj 不能正确支持 workmanager,那么还有其他选择。

回答1

JSR-237 已被撤回,但已与 JSR-236 合并。 http://jcp.org/en/jsr/detail?id=237 原因:JSR 237 已与 JSR 236 合并,为 Java EE 并发提供单一、一致的规范。

回答2

老派的方式

复制到 jars 后的 tomcat\lib 文件夹:

  • commonj-xxx.jar
  • tomcat-commonj-xxx.jar

在您的应用程序或 tomcat 的 context.xml 中创建一个新的 WorkManager 实例:

<Resource name="wm/myWorkManager" type="commonj.work.WorkManager" auth="Container"
      factory="de.myfoo.commonj.work.FooWorkManagerFactory"
      maxThreads="10"
      minThreads="5" />

使用 JNDI 获取此实例。 例如使用 web.xml:

<resource-ref>
  <description>Work manager example</description>
  <res-ref-name>wm/myWorkManager"</res-ref-name>
  <res-type>commonj.work.WorkManager</res-type>
  <res-auth>Container</res-auth>
  <res-sharing-scope>Unshareable</res-sharing-scope>
</resource-ref>

任何其他方式都应该有效。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Need sample code explaning Workmanager in Tomcat
    I want to know how to use WorkManager in Tomcat 7. I came across the open source library Foo-CommonJ but nowhere i found a sample code explaning the usage. The input parameter for FooWorkManager's constructor is an instance of commonj.work.work class, where as no one provides the commonj.work.work class (neither tomcat nor foo-commonj). Basically i need a sample code explaining usage of WorkManager (FooCommonj jar) in tomcat. And if Foo-Commonj doesn't support workmanager properly, then some alternative.
  • 需要解释块作为方法参数的这种用法(Need explanation for this usage of block as method parameter)
    问题 这是 AFNetworking 示例代码的片段: + (void)globalTimelinePostsWithBlock:(void (^)(NSArray *posts, NSError *error))block { [[AFAppDotNetAPIClient sharedClient] getPath:@"stream/0/posts/stream/global" parameters:nil success:^(AFHTTPRequestOperation *operation, id JSON) { NSArray *postsFromResponse = [JSON valueForKeyPath:@"data"]; NSMutableArray *mutablePosts = [NSMutableArray arrayWithCapacity:[postsFromResponse count]]; for (NSDictionary *attributes in postsFromResponse) { Post *post = [[Post alloc] initWithAttributes:attributes]; [mutablePosts addObject:post]; } if (block) { block([NSArray
  • Jboss Java EE容器和ExecutorService(Jboss Java EE container and an ExecutorService)
    问题 我有一个独立的Java应用程序,该应用程序使用ExecutorService并行处理许多作业 ExecutorService es = Executors.newFixedThreadPool(10); 现在,我想在EJB bean中重用相同的解决方案,但是不确定如何正确初始化ThreadPool,因为我通常会离开Java EE容器来控制所有线程资源。 我可以只使用相同的代码还是获得Jboss托管线程池的替代正确方法? 回答1 在EJB中执行此操作的正确方法是使用ManagedExecutorService,它是Concurrency Utils API(Java EE7)的一部分。 您不应该使用企业代码中java.util.concurrent一部分的任何ExecutorService。 通过使用ManagedExecutorService,新线程将由容器创建和管理。 以下示例取自我的网站。 要使用ManagedExecutorService创建新线程,请首先创建一个实现Callable的任务对象。 在call()方法内,我们将在单独的线程中定义要执行的工作。 public class ReportTask implements Callable<Report> { Logger logger = Logger.getLogger(getClass()
  • 非托管线程Spring Quartz Websphere Hibernate(Unmanaged Threads Spring Quartz Websphere Hibernate)
    问题 看来我们使用Quartz-JDBCJobStore以及Spring,Hibernate和Websphere的实现抛出了非托管线程。 我读了一些书,发现IBM的一篇技术文章指出将Quartz与Spring一起使用会导致这种情况。 他们提出使用CommnonJ解决此问题的建议。 我进行了一些进一步的研究,到目前为止,我所看到的唯一示例都处理了不在数据库中的旧JobStore计划。 因此,我想知道是否有人有解决此问题的示例。 谢谢 回答1 我们有一个可行的解决方案(实际上有两个)。 1)更改石英源代码,以将WorkManager守护程序线程用于主调度程序线程。 它可以工作,但需要更换夸脱。 不过我们没有使用它,因为我们不想维护被黑的石英版本。 (这使我想起了,我打算将其提交给项目,但完全忘记了) 2)创建一个WorkManagerThreadPool用作石英线程池。 实现石英ThreadPool的接口,以便在石英内触发的每个任务都包装在commonj Work对象中,然后将在WorkManager中安排该对象。 关键是必须在启动调度程序之前从Java EE线程(例如Servlet初始化)初始化WorkManagerThreadPool中的WorkManager。 然后,WorkManagerThreadPool必须创建一个守护程序线程
  • 如何从 Java EE 中启动多个线程?(How do you launch multiple threads from within Java EE?)
    问题 我需要将调用扩展到 Tomcat,并且有人建议在内部启动线程。 是否有人需要这样做,如果需要,他们提出了哪些解决方案? 回答1 通常不鼓励在应用程序服务器内创建自己的线程,因为服务器应该管理线程以获得更好的可伸缩性。 如果容器对线程上下文中的可用内容做出假设,例如安全信息(例如,经过身份验证的主题),您也可能会遇到问题。 如果您生成一个线程,然后使用该线程中容器未知的服务器资源,通常会发生这种情况。 检查是否有办法从 Tomcat 获取容器管理的线程。 WebLogic 和 WebSphere 支持 commonj.WorkManager,它允许您在容器管理的线程上安排工作。 Spring 也可以使用 commonj,但我不确定 Tomcat 是否提供该支持。 回答2 除非您有非常特殊的需要,否则您不应该真正从您的 web 应用程序中启动线程。 如果没有关于您的问题的更多详细信息,很难判断这是否是解决您问题的正确方法。 您可能想看看 Quartz,它“是一个功能齐全的开源作业调度系统,可以与几乎任何 J2EE 或 J2SE 应用程序集成或与任何 J2EE 或 J2SE 应用程序一起使用”。 回答3 你的问题有点含糊。 Tomcat 本身已经使用线程池来为 HTTP 请求提供服务。 您可以通过 Tomcat 配置增加线程数 - 请查看 Tomcat wiki
  • 将 RGBW 颜色转换为标准 RGB/HSB 表示(Converting an RGBW color to a standard RGB/HSB representation)
    问题 我正在为家庭自动化系统中的灯光管理构建一个界面。 我设法控制各种供应商的标准开/关和可调光灯,几乎没有问题,但现在我遇到了与 RGB 灯相关的问题。 我目前使用的灯是 RGBW LED 灯条 - 具体来说,我正在使用低成本的 RGBW 灯:灯由四个 LED 组成,每个 LED 都可以单独控制。 更清楚一点 - 我正在处理一些应该检索当前选择的颜色并将其显示在 UI 中的 c# 代码,并使用户能够为灯光指定新的颜色。 为了设置颜色并检索它,我必须使用一个命令提供程序,它使我能够通过 Web 服务发送和接收命令。 提供程序使用 RGBW 颜色 - 使用红色、绿色、蓝色和白色的四个组件。 为了在我的界面上表示当前的灯光颜色,我想将服务返回的 RGBW 颜色转换为更标准的 RGB/HSB 方案。 在网上搜索,我找到的唯一的颜色转换参考(不包括用于 rgb 到 rgbw 转换的 c++ 示例,根据我的理解,必须有一些严重的错误)是这篇文章,它显示了从 HSI 到 RGBW 的转换,这是与我需要的相反:链接在这里 我正在寻找有关如何实现这种转换的一些见解(或对为什么不可能的简单解释)。 就我而言,从 RGB 到 RGBW 的转换是任意的——单个 RGB 值可以表示为多个 RGBW 值,但相反的转换应该是单义的。 另请注意,当我使用 c# 时,也可以随意参考其他语言中的算法 -
  • 需要对 iOS 中的 @property/@synthesize 进行解释(Need explanation on @property/@synthesize in iOS)
    问题 不是一个完整的菜鸟我对 iOS 编程和 Ojbective-C 很陌生。 我主要来自 C(DSP、微控制器)、Delphi XE2/Pascal、Visual Basic 和 Java(桌面和 Android 应用程序)的背景。 我主要是通过 Apress 的“Beginning iOS 5 Development”一书学习 Cocoa。 最近我观看了 WWDC 2012 的视频并浏览了他们的一些示例代码,我必须说我很困惑什么是编写我的应用程序的正确方法,更具体地说是 @property/@synthesize 词。 书中大部分(不是全部)示例代码用于定义一个属性,例如 ViewController.h @property (strong, nonatomic) NSMutableArray *list; ViewController.m @synthesize list; 然后所有的代码访问合成列表 self.list 甚至干脆 list 现在,在我阅读的每个 WWDC 代码示例中,我看到程序员定义了一个属性,但是,在 .m 文件中,他们做了类似的事情 @synthesize list = _list; 有时访问 self.list 或者 _list 我很困惑。 什么是正确的做法? 由于 Apple 程序员都使用下划线,我认为我应该这样做,但为什么这本书没有呢? list
  • 在Tomcat中从Servlet产生线程的推荐方法是什么(What is recommended way for spawning threads from a servlet in Tomcat)
    问题 大概重复一遍! 我正在使用Tomcat作为服务器,并且想知道什么是在servlet中产生确定性结果的最佳方式。 我正在从servlet操作中运行一些长期运行的更新,并希望请求完成并在后台进行更新。 我认为我可以生成一个可以在后台运行并在自己的时间内完成的线程,而不是添加像RabbitMQ这样的消息传递中间件。 我在其他SO线程中读到,服务器终止了服务器派生的线程,以使其很好地管理资源。 使用Tomcat时,是否有建议的方法来生成线程,后台作业。 我还将Spring MVC用于该应用程序。 回答1 在像Tomcat或Jetty这样的准系统servlet容器中,最安全的选择是使用最大线程数的applicaton宽线程池,以便在必要时将任务排队。 ExecutorService在此方面非常有帮助。 在应用程序启动或servlet初始化后,使用Executors类创建一个: executor = Executors.newFixedThreadPool(10); // Max 10 threads. 然后在Servlet的服务期间(对于您不感兴趣的情况,您可以忽略结果,或者将其存储在会话中以供以后访问): Future<ReturnType> result = executor.submit(new YourTask(yourData))
  • Android使用 WorkManager 调度任务
    文章目录 一、前言二、WorkManager入门指南2.1 添加依赖2.2 创建后台任务2.3 配置运行任务的方式和时间2.4 将任务提交给系统 三、WorkManager 进阶3.1 设定任务请求3.1.1 任务约束3.1.2 初始延迟3.1.3 重试和退避政策3.1.4 定义任务的输入/输出3.1.5 标记任务 3.2 任务的状态及任务状态跟踪3.2.1 任务的状态3.2.2 任务状态跟踪 3.3 跟踪工作任务的中间状态3.3.1 更新进度3.3.2 跟踪任务进度 3.4 将多个工作任务链接在一起3.4.1 创建工作任务链3.4.2 输入数据合并3.4.3 工作任务链的状态 3.5 取消和停止工作任务3.5.1 取消工作任务3.5.2 停止正在运行的工作器 3.6 重复性工作3.7 唯一工作任务3.7.1 创建唯一工作任务3.7.2 唯一工作链 3.8 异步工作任务 四、WorkManager 高级概念4.1 WorkManager配置和初始化4.1.1 WorkManager 2.1.0 及更高版本移除默认初始化程序实现 Configuration.Provider 4.1.2 WorkManager 2.0.1 及更早版本默认初始化自定义初始化 4.2 在 WorkManager 中进行线程处理4.2.1 在工作器中进行线程处理4.2.2 在 CoroutineWorker
  • 在使用 Spring 进行测试时,需要解释事先刷新以避免误报的必要性吗?(Need explanation on the necessity of a prior flushing to avoid false positives whenTesting with Spring ?)
    问题 在有关测试的 spring 文档中,它指出: 测试 ORM 代码时避免误报当您测试涉及 ORM 框架(例如 JPA 或 Hibernate)的代码时,请在更新会话状态的测试方法中刷新底层会话。 未能刷新 ORM 框架的底层会话可能会产生误报:您的测试可能通过,但相同的代码会在实时生产环境中引发异常。 在以下基于 Hibernate 的示例测试用例中,一种方法演示了误报,另一种方法正确公开了刷新会话的结果。 有人可以解释为什么我需要调用flush吗? 回答1 好吧,您实际上跳过了有趣的部分,示例 :) 在这里: // ... @Autowired private SessionFactory sessionFactory; @Test // no expected exception! public void falsePositive() { updateEntityInHibernateSession(); // False positive: an exception will be thrown once the session is // finally flushed (i.e., in production code) } @Test(expected = GenericJDBCException.class) public void
  • 需要更多关于 w3schools javascript 关闭示例的解释(need more explanation on w3schools javascript closure example)
    问题 我正在尝试了解闭包,并且正在查看 W3Schools javascript 教程。 这是他们通过制作计数器给出的一个示例。 <body> <p>Counting with a local variable.</p> <button type="button" onclick="myFunction()">Count!</button> <p id="demo">0</p> <script> var add = (function () { var counter = 0; return function () {return counter += 1;} })(); function myFunction(){ document.getElementById("demo").innerHTML = add(); } </script> </body> 示例说明变量 add 被分配了自调用函数的返回值。 自调用函数只运行一次。 它将计数器设置为零 (0),并返回一个函数表达式。 这样 add 就变成了一个函数。 “精彩”的部分是它可以访问父作用域中的计数器。 这称为 JavaScript 闭包。 它使函数具有“私有”变量成为可能。 计数器受匿名函数的作用域保护,只能使用 add 函数更改。 注意闭包是一个可以访问父作用域的函数,即使在父函数关闭之后也是如此。 解释还不错
  • JAVA互联网架构师专题/分布式/高并发/微服务鲁班学院之学习笔记面试篇
    引言: 编程一份耕耘,一份收获,望大家抱着一科感恩之心对待 如果传送失效:2228114940 传送门添加链接描述 1、Tomcat 的缺省端口是多少,怎么修改? 1)找到 Tomcat 目录下的 conf 文件夹 2)进入 conf 文件夹里面找到 server.xml 文件 3)打开 server.xml 文件 4)在 server.xml 文件里面找到下列信息 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" uriEncoding="utf-8"/> port="8080"改成你想要的端口 2、tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。 maxThreads=”150”//Tomcat 使用线程来处理接收的每个请求。这个值表示 Tomcat 可创建的最大的线程数。默认值 200。可以根据机器的时期性能和内存 大小调整,一般可以在 400-500。最大可以在 800 左右。 minSpareThreads=”25”—Tomcat 初始化时创建的线程数。默认值 4。如果 当前没有空闲线程,且没有超过 maxThreads,一次性创建的空闲线程数量。 Tomcat
  • Object.assign() - 奇怪的行为需要解释(Object.assign() - weird behaviour need explanation)
    问题 我有这个代码: function margeOptions(options, passedOptions) { options = Object.assign(options, passedOptions); } let passedOpts = {a: true}; let opts = {a: false}; margeOptions(opts, passedOpts); console.log(opts); // as expected returns {a: true} 但是当我稍微改变功能时,就像这样: function margeOptions(options, passedOptions) { options = Object.assign({}, options, passedOptions); } let passedOpts = {a: true}; let opts = {a: false}; margeOptions(opts, passedOpts); console.log(opts); // this time returns {a: false} <-- ! 那么这里究竟发生了什么? 回答1 Object.assign()函数修改第一个对象参数的内容。 因此在第一个函数中: options = Object.assign(options
  • Tomcat面试题笔记
    更多见博客: Tomcat 学习笔记(《Tomcat内核设计剖析》读书笔记) 1、Tomcat 的缺省端口是多少,怎么修改? 1)找到 Tomcat 目录下的 conf 文件夹2)进入 conf 文件夹里面找到 server.xml 文件3)打开 server.xml 文件4)在 server.xml 文件里面找到下列信息 <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" uriEncoding="utf-8"/> port="8080"改成你想要的端口 2、tomcat 有哪几种 Connector 运行模式(优化)? bio:传统的 Java I/O 操作,同步且阻塞 IO。 maxThreads=”150” Tomcat 使用线程来处理接收的每个请求。这个值表示Tomcat 可创建的最大线程数。默认值 200。可以根据机器的时期性能和内存大小调整,一般可以在 400-500。最大可以在 800 左右。minSpareThreads=”25” Tomcat 初始化时创建的线程数。默认值 4。如果当前没有空闲线程,且没有超过 maxThreads,一次性创建的空闲线程数量。Tomcat 初始化时创建的线程数量也由此值设置。maxSpareThreads=
  • around_action 回调如何工作? 需要解释(How does an around_action callback work? An explanation is needed)
    问题 我对 around_action 感到非常困惑。 它们是如何工作的? 有人可以向我提供他们如何工作的示例/解释吗? 这是我的敏捷 Web 开发 4 书中的引述: 围绕回调包装动作的执行。 你可以用两种不同的风格编写一个 around 回调。 首先,回调是一段代码。 在执行操作之前调用该代码。 如果回调代码调用 yield,则执行操作。 当动作完成时,回调代码继续执行。 因此,yield 之前的代码就像之前的动作回调,而 yield 之后的代码是之后的动作回调。 如果回调代码从不调用 yield。 操作未运行 - 这与操作前回调返回 false 相同。 当我读到这里时我有点明白了。 这是 Rails 指南中的示例 class ChangesController < ApplicationController around_action :wrap_in_transaction, only: :show private def wrap_in_transaction ActiveRecord::Base.transaction do begin yield ensure raise ActiveRecord::Rollback end end end end 那么这里发生了什么? ActiveRecord::Base.transaction 是否以“之前”部分开始,并将
  • 简单的解释PHP OOP与过程?(simple explanation PHP OOP vs Procedural?)
    问题 我想学习PHP,并想了解有关OOP和过程的知识。 我还阅读了其他有关OOP与过程的博客和教程,但是我仍然不理解这种方法。 OOP与程序 我应该学习哪个? 代码有什么区别? 有什么影响? PHP框架如何帮助OOP? (我想学习CodeIgniter) 程序是否需要框架? 我真的很想知道两者的代码区别,我对OOP的理解是您创建了一个类似的类,并且可以对其进行访问。 (我不知道这是否正确)。 回答1 背景:您要求提供一个“简单的解释”,该解释建议: 您想要一个没有术语的废话概述您想要一些可以帮助您从一开始就学习的东西您已经发现,没有两个人以相同的方式回答问题,这很令人困惑。 这就是您在这里要求简单说明的原因。 是的? 简短的非Jargon答案: 许多介绍性解释很快就跳入“ OOP现实世界”示例中。 这些往往会使人迷惑而不是帮助,因此暂时不要理会。 您可以将源代码简单地视为功能的“块”,而恰好将其保存到单个文件中。 组织这些“块”有不同的方法。 取决于编程语言的惯例,开发人员的背景和培训,或者仅仅是普通的个人喜好。 OOP和过程编程只是用于组织和安排代码“块”的两种主要的公认方法。 长无贾斯汀答案: 程序与OOP只是计算机编程的一个基本问题的一个方面:如何使您的代码易于理解,以及如何进行专业维护。 您实际上可以编写遵循OOP某些原理的“过程”代码,因此两者不一定是相反的。
  • context.xml 的解释(Explanation of context.xml)
    问题 使用 Tomcat 时,我一直将web.xml视为一种.htaccess或httpd.conf等效文件。 可能必须有某种方式来配置 Web 服务器,这似乎很自然。 但是,我不太明白context.xml的目的。 例如,在使用 JDBC 时,为什么我必须在web.xml添加一个resource-ref并且在context.xml添加一个包含更多信息的Resource ? 我可以消除context.xml文件并以某种方式在我的代码中实例化DataSource吗? 我问是因为像这样的假设例子可以帮助我理解。 编辑:我试图了解这样的配置中发生了什么,在/META-INF/context.xml : <Context> <Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource" driverClassName="org.postgresql.Driver" url="jdbc:postgresql://127.0.0.1:5432" username="postgres" password="yes" maxActive="20" maxIdle="10" maxWait="-1" /> </Context> 并且,在WEB-INF/web.xml : <resource-ref>
  • 想要一个关于 Node.js 的 SQLite3 教程和一个代码示例解释(A tutorial on SQLite3 for Node.js and a code example explanation wanted)
    问题 我现在对 SQLite 有点困惑,因为这是我第一次使用数据库。 我从这里得到了 sqlite3:https://github.com/developmentseed/node-sqlite3。 我正在看那个例子,有些事情我确实理解,而另一些则我不理解。 大多数包含在.run() 、 .prepare()等中的数据库命令给我带来了困难。 这是示例: var usersDB = new sqlite3.Database("databases/users.db"); usersDB.serialize(function() { usersDB.run("CREATE TABLE lorem (info TEXT)"); var stmt = usersDB.prepare("INSERT INTO lorem VALUES (?)"); for (var i = 0; i < 10; i++) { stmt.run("Ipsum " + i); } stmt.finalize(); usersDB.each("SELECT rowid AS id, info FROM lorem", function(err, row) { console.log(row.id + ": " + row.info); }); }); usersDB.close(); 另外,我如何在 Node.js
  • Django - 异常处理最佳实践和发送自定义错误消息(Django - exception handling best practice and sending customized error message)
    问题 我开始考虑在我的 Django 应用程序中进行适当的异常处理,我的目标是尽可能使其用户友好。 通过用户友好性,我的意思是用户必须始终详细了解到底出了什么问题。 在这篇文章之后,最佳做法是 使用状态为 200 的 JSON 响应作为您的正常响应,并为错误返回(适当的!)4xx/5xx 响应。 这些也可以携带 JSON 有效负载,因此您的服务器端可以添加有关错误的其他详细信息。 我试图通过这个答案中的关键词进行谷歌搜索,因为我脑子里的问题仍然比答案多。 我如何决定返回哪个错误代码 - 400 或 500? 我的意思是,Django 有许多预定义的错误类型,我如何实现 Django 异常类型和 400-500 错误代码之间的这种映射,以使异常处理块尽可能 DRY 和可重用? @Reorx 在帖子中建议的中间件方法是否可行? (答案只有一个赞成票,因此我不愿意深入研究细节并在我的项目中实施它最重要的是,有时我可能希望引发与业务逻辑相关的错误,而不是错误的语法或诸如空值之类的标准。 例如,如果我的法律实体中没有 CEO,我可能想禁止用户添加合同。 在这种情况下,错误状态应该是什么,我如何向用户抛出错误并详细解释错误? 让我们从一个简单的角度考虑它 def test_view (request): try: # Some code .... if my_business_logic_is
  • Java - Servlet 404 错误 [重复](Java - Servlet 404 error [duplicate])
    问题 这个问题在这里已经有了答案: Servlet 返回“HTTP 状态 404 请求的资源 (/servlet) 不可用” (17 个回答) 5年前关闭。 我是 servlet 编程的新手。 以下是我的示例 servlet 代码 示例.Java public class Sample extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/html"); PrintWriter pw=res.getWriter(); String name=req.getParameter("name");//will return value pw.println("Welcome "+name); pw.close(); } } 网页.xml <web-app> <servlet> <servlet-name>sampleservlet</servlet-name> <servlet-class>Sample</servlet-class> <load-on-startup>1</load-on-startup> </servlet>