我对spring petclinic应用做了很多改动.目前,当我在使用eclipse运行的tomcat服务器的新实例中启动应用程序时,我收到以下错误消息:在服务器上运行:
SEVERE: Exception loading sessions from persistent storage
Run Code Online (Sandbox Code Playgroud)
随后服务器和应用程序能够成功启动,但我想修复导致错误消息的任何内容.任何人都可以告诉我如何通过此错误消息?
堆栈跟踪不会列出应用程序中的任何文件,因此我不知道在应用程序代码中查找哪个位置来解决问题.您可以在github上查看petclinic代码以查看应用程序的结构,如果这有助于您了解我应该在哪里找到问题.这是堆栈跟踪:
INFO EhCacheManagerFactoryBean - Initializing EhCache CacheManager
INFO ContextLoader - Root WebApplicationContext: initialization completed in 4376 ms
Dec 16, 2013 2:51:56 PM org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) …Run Code Online (Sandbox Code Playgroud) 在Spring MVC中使用的应用程序春天的安全,我想用一个自定义的AuthenticationProvider检查正数超出了预设的附加字段username和password.我正在尝试使用Java配置.我该如何设置?
我通过剖析示例应用程序然后在这里和那里添加代码来测试我在解剖过程中开发的理论,从而自学Spring.我测试一些我添加到Spring应用程序的代码时收到以下错误消息:
An Errors/BindingResult argument is expected to be declared immediately after the
model attribute, the @RequestBody or the @RequestPart arguments to which they apply
Run Code Online (Sandbox Code Playgroud)
错误消息引用的方法是:
@RequestMapping(value = "/catowners", method = RequestMethod.GET)
public String findOwnersOfPetType(Integer typeID, BindingResult result, Map<String, Object> model) {
// find owners of a specific type of pet
typeID = 1;//this is just a placeholder
Collection<Owner> results = this.clinicService.findOwnerByPetType(typeID);
model.put("selections", results);
return "owners/catowners";
}
Run Code Online (Sandbox Code Playgroud)
当我尝试在Web浏览器中加载/ catowners url模式时,会触发此错误消息.我已经回顾了这个页面和这个帖子,但解释似乎并不清楚.
任何人都可以告诉我如何解决这个错误,并解释它是什么意思?
编辑:
基于Biju Kunjummen的回复,我将语法更改为以下内容:
@RequestMapping(value = "/catowners", …Run Code Online (Sandbox Code Playgroud) 下面给出了快速重现问题的完整代码和说明.
HttpSession成为null以后的自定义实现DefaultOAuth2RequestFactory替换当前AuthorizationRequest与保存AuthorizationRequest. 这将导致后续请求失败来/oauth/token,因为CsrfFilter在之前的春季安全过滤器链/oauth/token端点无法找到一个session Csrf token在null session与比较request的Csrf token.
以下流程图说明了步骤14和步骤15以某种方式 - null通知HttpSession.(或者可能不匹配a JSESSIONID.)在步骤14SYSO开始时的A 表明确实存在确实包含正确的.然而,不知何故,当步骤15触发从URL 处的客户端返回到端点的呼叫时,已经变为. CustomOAuth2RequestFactory.javaHttpSessionCsrfTokenHttpSessionnulllocalhost:8080/loginlocalhost:9999/oauth/token
断点被添加到HttpSessionSecurityContextRepository下面的调试日志中提到的每一行.(它位于在Maven Dependencies所述的夹authservereclipse项目.)这些断点确认的HttpSession是null,当向最终请求/oauth/token在下面的流程图制备.(左下角流程图) 的null …
我在CentOS 7服务器上安装node.js,当我尝试安装yeoman时出现以下错误:
npm WARN deprecated npmconf@2.1.2: this package has been
reintegrated into npm and is now out of date with respect to npm
Run Code Online (Sandbox Code Playgroud)
安装的yeoman似乎正常工作.我能做些什么来避免这种警告吗?让它处理不当会有什么影响?
以下是yeoman安装的终端输出的第一部分的其余部分:
[root@localhost ~]# npm install -g yo
npm WARN deprecated npmconf@2.1.2: this package has been reintegrated into npm and is now out of date with respect to npm
/usr/bin/yo -> /usr/lib/node_modules/yo/lib/cli.js
> yo@1.6.0 postinstall /usr/lib/node_modules/yo
> yodoctor
Yeoman Doctor
Running sanity checks on your system
? Global configuration file is valid
? NODE_PATH matches the npm …Run Code Online (Sandbox Code Playgroud) 我想从Java调用一个R脚本.我已经对该主题进行了谷歌搜索,但我看到的几乎所有结果都要求我向某些第三方库添加依赖项.任何人都可以告诉我一个很好的方法来完成相同的事情而不添加任何依赖关系到我的代码?
我使用的是Windows机器,所以也许我可以使用命令行来启动R(如果它还没有打开)并运行特定的R脚本.但我从来没有编写过命令行代码(或者用Java调用它)所以我需要代码示例.
我正在使用我的命令行思路包括我为下面的一种可能方法编写的工作示例代码.在下面的内联注释中,您可以看到AssembleDataFile.java中的第三步被我故意留空.如果您认为可以使命令行思想有效,请告诉我在第三步中编写的代码.
另外,请随意建议另一种方法,希望不涉及向我的代码添加任何更多依赖项.
而且,与往常一样,我非常感谢您可能发布到与此问题相关的文章/教程/等的任何链接.
这是我到目前为止:
AssembleDataFile.java
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
public class AssembleDataFile {
static String delimiter;
static String localPath = "C:\\test\\cr\\";
static String[][] myDataArray;
public static void main(String[] args) {
String inputPath = localPath+"pd\\";
String fileName = "MSData.txt";
delimiter = "\\t";
// Step One: Import data in two parts
try {
// 1A: get length of data file
BufferedReader br1 = new BufferedReader(new FileReader(inputPath+fileName));
int numRows = 0;
int numCols …Run Code Online (Sandbox Code Playgroud) 已将多重身份验证的Spring OAuth2实现的完整代码上载到此链接的文件共享站点.下面给出了说明,只需几分钟即可在任何计算机上重新创建当前问题.
大多数身份验证算法都能正常工作.程序不会中断,直到下面显示的控制流程结束.具体来说,Invalid CSRF token found for http://localhost:9999/uaa/oauth/token在下面的第二次通过结束时会抛出错误.在上面的链接的应用程序中加入一个定制开发OAuth2RequestFactory,TwoFactorAuthenticationFilter并TwoFactorAuthenticationController在authserver应用此的春天启动了OAuth2 GitHub的样品. 需要对下面的代码进行哪些具体更改才能解决此CSRF令牌错误并启用双因素身份验证?
我的研究使我怀疑CustomOAuth2RequestFactory(此链接上的API)可能是配置解决方案的地方,因为它定义了管理AuthorizationRequests和TokenRequests的方法.
官方OAuth2规范的此部分指示state对授权端点发出的请求的参数csrf是添加令牌的位置.
此外,链接中的代码使用此链接中描述的授权代码授权类型到官方规范,这意味着流程中的步骤C不会更新csrf代码,从而在步骤D中触发错误.(您可以查看整个流程包括官方规范中的步骤C和步骤D. )
正在所述过程中引发电流误差第二遍通过TwoFactorAuthenticationFilter在下面的流程图.一切都按预期工作,直到控制流进入第二通道.
以下流程图说明了可下载应用程序中的代码所采用的双因素身份验证过程的控制流程.
具体来说,s和s HTTP序列的Firefox 标题显示,序列中POST的每个请求都会发送GET相同的XSRFcookie.该XSRF标记值不会导致一个问题,直到后POST /secure/two_factor_authentication,其在触发服务器处理/oauth/authorize和/oauth/token …
当我键入gradle bootRun --stacktrace --debugCentOS 7终端以使用gradle启动此示例Spring启动应用程序时,我收到以下错误.
Caused by: org.gradle.process.internal.ExecException:
Process 'command '/opt/jdk1.8.0_45/bin/java'' finished with
non-zero exit value 1
Run Code Online (Sandbox Code Playgroud)
我搜索了这个错误并阅读了其他相似但不重复的SO帖子.例如,这是在CentOS 7中的eclipse和一个Web应用程序.这不是Android应用程序等.此外,其他帖子中给出的命令尚未解决此问题.
重现此问题所需的所有代码都在上面的github链接中,所有用于诊断问题的日志都在下面的OP中. 如何解决此错误,以便我gradle bootRun可以成功启动示例应用程序?
逐步复制问题:
我通过导航/home/user/workspaces/和输入来下载应用程序git clone https://github.com/jrodenbostel/beyond-the-examples
然后我导航到cd /home/user/workspaces/beyond-the-examples/part-5并键入gradle bootRun --stacktrace --debug,这导致堆栈跟踪和日志,您可以通过单击此链接到文件共享站点读取. (日志太长,无法包含在此OP中.)
我正在spring使用jpa和开发文档管理应用程序MySQL.应用程序当前正在从用户Web表单接收文档及其元数据createOrUpdateDocumentForm.jsp到控制器中DocumentController.java.但是,数据没有进入MySQL数据库.有人可以告诉我如何更改我的代码,以便文档及其元数据存储在底层数据库中吗?
数据流(包括pdf文档)似乎经历了以下对象:
createOrUpdateDocumentForm.jsp //omitted for brevity, since it is sending data to controller (see below)
Document.java
DocumentController.java
ClinicService.java
JpaDocumentRepository.java
The MySQL database
Run Code Online (Sandbox Code Playgroud)
我将总结每个对象的相关部分如下:
所述jsp触发器中的以下方法DocumentController.java:
@RequestMapping(value = "/patients/{patientId}/documents/new", headers = "content-type=multipart/*", method = RequestMethod.POST)
public String processCreationForm(@ModelAttribute("document") Document document, BindingResult result, SessionStatus status, @RequestParam("file") final MultipartFile file) {
document.setCreated();
byte[] contents;
Blob blob = null;
try {
contents = file.getBytes();
blob = new SerialBlob(contents);
} …Run Code Online (Sandbox Code Playgroud) 我正在对Spring OAuth进行深入研究,我发现了一些相互矛盾的信息.有人可以澄清一下吗?
具体来说,本教程指出/oauth/token端点在向客户端应用程序授予刷新令牌之前处理用户名和密码.相比之下,春OAuth的开发手册中提到的/oauth/authorize和/oauth/token终点,但仍没有得到具体的关于他们如何工作.
是否/oauth/authorize做了100%的username/password/nOtherFactors检查,然后将信号/oauth/token端点发送一个刷新令牌给客户,让客户端将发送更新凭证到/oauth/token终点?
或者全部是由/oauth/token端点处理的?
之间的关系是/oauth/authorize和/oauth/token不同的对不同类型的补助?怎么样?
spring ×8
java ×6
spring-mvc ×6
spring-boot ×3
hibernate ×2
build.gradle ×1
command-line ×1
gradle ×1
io ×1
javascript ×1
jpa ×1
node.js ×1
oauth ×1
oauth-2.0 ×1
r ×1
yeoman ×1