我在Linux上从命令行启动Tomcat 7时遇到问题,日志显示:
Sep 24, 2012 8:54:10 AM org.apache.catalina.core.AprLifecycleListener init
INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the jav
a.library.path: /usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/amd64/server:/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/amd64:/u
sr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/../lib/amd64:/usr/lib64/mpi/gcc/openmpi/lib64:/usr/java/packages/lib/amd64:/usr/lib64:/lib6
4:/lib:/usr/lib
Sep 24, 2012 8:54:10 AM org.apache.tomcat.util.digester.Digester startElement
SEVERE: Begin event threw error
java.lang.UnsupportedClassVersionError: pms/security/BCryptRealm : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:634)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:144)
at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1276)
at …Run Code Online (Sandbox Code Playgroud) 我正在开发一个涉及在大图上运行算法的项目.最大的两个顶点有大约300k和600k顶点(我认为相当稀疏).我希望找到一个可以处理大型图形的Java库,以及尺寸稍小的树,因为我将使用的算法之一涉及将图形分解为树.理想情况下,该库还包括广度优先搜索和Dijkstra或其他最短路径算法.
基于另一个问题,我一直在寻找一些库(JGraphT,JUNG,jdsl,yworks),但我很难找到他们能够真实处理的顶点数.看看他们的文档,我所能找到的只是在JUNG常见问题解答中说它可以轻松处理超过150k顶点的图形,这仍然比我的图形小一点......我希望有人在这里使用过这些库中的一个或多个可以告诉我它是否会处理我需要的图形大小,或者是否有一些其他库会更好.
为了记录,我不需要任何可视化工具; 这完全是关于在数据结构中表示图形和树以及在它们上运行算法.
背景,如果有人真正关心:对于一个课我应该实施研究论文中描述的算法,并尽可能地在论文中运行实验.我将使用的论文和数据集可以在这里找到.我的教授说我可以使用我能找到的任何库,只要我能分辨出算法/数据结构的时间/空间复杂性.
我正在使用在tomcat上运行的JSP和Java servlet开发一个相当简单的Web应用程序.我已经能够从servlet中设置会话中的属性,以便将信息传递给JSP,然后将其呈现给用户.我已经用不同类的几个不同对象完成了这个并且它运行良好.突然间,当我设置一个特定类型的对象(包含配置信息)时,该属性根本没有出现在JSP中.我设置的其他属性仍然存在,但配置对象完全丢失.我打印了属性名称列表,我使用的名称甚至没有(尽管我设置的其他属性的其他名称都存在).
什么可能导致这个?我的配置类没什么不同或奇怪的.我真的很感激任何关于什么样的事情可能导致这种行为的想法.我用Google搜索并搜索,找不到任何东西.
ETA:如果重要,则属性名称为"configuration".我找不到任何关于保留字或任何内容的东西......我在servlet中设置这个属性的功能与其他一些例如"user"相同.然后我重定向到一个试图获得用户和配置的JSP.所以一切都在同一时间进行.用户很好,而配置甚至没有出现在属性名称列表中.
ETA2:以下是日志中不断发生的异常:
java.lang.Exception
at pms.SessionListener.printStackTrace(Unknown Source)
at pms.SessionListener.attributeAdded(Unknown Source)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1498)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1390)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:154)
at PMS.getTaskInfo(Unknown Source)
at PMS.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:306)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:108)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:558)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:379)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:282)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:357)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1687)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)Run Code Online (Sandbox Code Playgroud) 我正在为我的Masters项目开发一个Web应用程序.它是教授管理学生项目的系统,它使用Java作为服务器端代码,使用HSQLDB作为数据库,使用JSP作为表示层,并在tomcat上运行.将存储的数据不包括任何敏感信息(学生ID,财务信息,没有类似的信息),但是用户名和密码是必需的,所以我想在学生使用密码的情况下自己保护密码我的应用程序,他们用于其他一些更重要的应用程序(即使我告诉人们不要这样做,这无疑会发生).
我以前从未考虑过这种事情而且我很丢失.我找到了一篇很好的文章,解释了如何使用Java 创建密码哈希,我在tomcat文档中找到了解释如何设置域中使用的哈希方案以及如何使用tomcat进行SSL的信息,以及用于从密码创建哈希的JavaScript库,但我不确定如何将所有部分组合在一起,以及我需要哪些部分.
如果我使用JavaScript库来散列密码并使用SSL进行登录步骤(之后我认为不必要,因为其他数据不需要保护),那么只在数据库中存储密码的散列版本,这就足够了?或者我还需要做更多的事情吗?我遇到了一个问题,其中答案讨论了PBKDF2和其他一些事情,但它让我更加困惑......如果我应该使用这些答案中提到的方案之一,我该怎么做呢?我没有在tomcat或其他文档中看到过对它们的引用,所以我不知道我是如何使用它们的...
如果有人能解决我的困惑并告诉我安全传输和存储密码的正确方法是什么,我会非常感激.
我正在使用Tomcat 7.0作为应用程序服务器开发基于Java的Web应用程序.在对先前问题的有用回答之后,我决定使用bcrypt在我的HSQLDB中安全地存储密码.但是Tomcat的默认Realm实现无法处理bcrypt,所以我需要编写自己的; 这是我写一个自定义领域的唯一原因,尽管在其他所有方面都可以使用JDBCRealm.我一直在谷歌搜索并查看示例,我对两点感到困惑.
首先,我应该扩展RealmBase还是JDBCRealm?我发现的大多数例子都使用了RealmBase,但到目前为止我已成功使用JDBCRealm作为应用程序(因为它仍在开发中,我开始将密码存储在纯文本中,只是使用JDBCRealm来处理身份验证),并且一个答案是关于Code Ranch的一个问题建议只是扩展它.不过,我不确定在这种情况下我需要覆盖哪些方法.只是验证方法,还是更多?如果这样做,JDBCRealm仍然能够处理和管理用户角色,getPrincipal,以及所有这些?
其次,在上面链接的CodeRanch示例中,除非我遗漏了某些内容,否则getPassword方法似乎返回了未加密的密码.因为我将要使用不可能的bcrypt,而且无论如何它似乎都是不可取的,我想.在此博客文章中的其他示例中,getPassword似乎只是直接从数据库返回密码.那么哪种方式是正确的?我找不到getPassword的用途; 文档没有说.为此可以返回存储在数据库中的加密值吗?
如果有人能告诉我应该扩展哪个类,我应该覆盖哪些方法,以及getPassword应该返回什么,我真的很感激.
我们使用 Rails(版本 2.3.8,Ruby 版本 1.8.7,如果相关的话)已经有一段时间了,一切似乎都工作正常。我们的 MySQL 版本 5.5.20 DBMS 中的所有表都使用默认的 latin-1 字符集,我认为这很好,因为我们没有国际用户(尽管我们的 database.yml 实际上指定了 utf8...没有人注意到数据库之前实际上并没有这样出来)。
然而我刚刚发现,对于我们最后一个应用程序之一,该特定数据库中的表正在使用 utf8。我们现在正在添加到这个应用程序,并且在我们的开发机器和测试服务器上,新创建的表最终使用的字符集似乎是完全随机的。周五,我部署到我们的测试服务器,当时创建了两个表,其中一个使用 latin-1,另一个使用 utf8。在我的机器上它们都是 utf8。由于我们在这些表之间使用外键,所以这是一个问题。
我发现了大量有关修复字符集问题、从一种字符集迁移到另一种字符集等的信息,但没有任何信息可以解释为什么我们会突然遇到这个问题,以及为什么它会来回切换。
两个表的迁移是
create_table :charges, :id => false do |t|
t.string :id
t.decimal :amount
t.decimal :charge
t.text :description
t.string :charge_type_ref_id
t.string :business_id
t.timestamps
end
Run Code Online (Sandbox Code Playgroud)
和
create_table :charge_type_refs, :id => false do |t|
t.string :id
t.string :name
t.string :code
t.boolean :active
t.decimal :fee
t.timestamps
end
Run Code Online (Sandbox Code Playgroud)
我们的database.yml看起来像
development:
adapter: mysql
encoding: utf8
reconnect: false
database: database_development
pool: 5
username: …Run Code Online (Sandbox Code Playgroud)