小编Cod*_*Med的帖子

java.lang.ClassNotFoundException:org.jdom.JDOMException

我在尝试加载rss页面时收到以下错误消息:

Feb 16, 2013 9:08:44 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [news-feed] in context with path [/publisher] threw exception [Servlet execution threw an exception] with root cause
java.lang.ClassNotFoundException: org.jdom.JDOMException
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at com.sun.syndication.io.SyndFeedOutput.<init>(SyndFeedOutput.java:44)
Run Code Online (Sandbox Code Playgroud)

触发错误的代码行是:

    SyndFeedOutput output = new SyndFeedOutput();  
Run Code Online (Sandbox Code Playgroud)

我已经搜索了此错误消息,并阅读了有关它的几个帖子,包括在此网站上发布的内容.这些帖子表明将jdom.jar添加到构建路径将导致错误消失.但是,我已经将与jdom-2.0.4.jar捆绑在一起的所有8个jar文件添加到我在eclipse中的buildpath中,但每次尝试加载rss页面时,错误消息仍然存在.

我想知道问题是否可能与我使用jdom-2.0.4.jar以及可能是旧语法的事实有关:

    SyndFeedOutput output = new SyndFeedOutput();  
Run Code Online (Sandbox Code Playgroud)

此错误消息的其他帖子都来自旧版本的jdom.也许在新版本的jdom中调用等效的SyndFeedOutput()有一些新的语法?

任何人都可以帮助我通过此错误消息?

编辑:

为了解决Nocmear的建议,我已经确认以下9个jar文件是与jdom或rome相关的唯一jar文件,它们包含在我的应用程序的buildpath中:

jaxen-1.1.4.jar  
jdom-2.0.4.jar  
jdom-2.0.4-contrib.jar  
jdom-2.0.4-javadoc.jar  
jdom-2.0.4-junit.jar  
jdom-2.0.4-sources.jar  
rome-1.0.jar  
xercesImpl.jar  
xml-apis.jar  
Run Code Online (Sandbox Code Playgroud)

第二次编辑:


我下载了jdom-1.1.3并将它添加到我的应用程序的eclipse中的buildpath中,正如rolfl建议的那样.

当我在我的网络浏览器中加载rss页面时,tomcat给了我以下错误日志:

java.lang.NoClassDefFoundError: org/jdom/JDOMException
    com.sun.syndication.io.SyndFeedOutput.<init>(SyndFeedOutput.java:44)
    publisher.web.NewsFeedServlet.doGet(NewsFeedServlet.java:68)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

java.lang.ClassNotFoundException: org.jdom.JDOMException
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    com.sun.syndication.io.SyndFeedOutput.<init>(SyndFeedOutput.java:44)
    publisher.web.NewsFeedServlet.doGet(NewsFeedServlet.java:68)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
Run Code Online (Sandbox Code Playgroud)

现在包含在我的构建路径中的相关jar文件是: …

java rss rome jdom

5
推荐指数
2
解决办法
2万
查看次数

spring app没有在对象上找到属性

我有一个calendar类型的对象AppointmentCalendar.在一个叫做的jsp中calendar.jsp,我将其中一个calendar属性称为calendar.day.但我收到一个错误说:

org.springframework.expression.spel.SpelEvaluationException: EL1008E:(pos 9): Field or property 'day' cannot be found on object of type  
Run Code Online (Sandbox Code Playgroud)

谁能告诉我如何解决这个问题?

以下是其中一部分calendar.jsp涉及day财产:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<%@ taglib prefix="joda" uri="http://www.joda.org/joda/time/tags" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
</head>
<body>
    <div id="appointmentDay" class="prepend-6 span-4 alt">
        <spring:eval expression="calendar.day" />
    </div> …
Run Code Online (Sandbox Code Playgroud)

java spring jsp spring-mvc

5
推荐指数
1
解决办法
2万
查看次数

键“P​​RIMARY”的重复条目“string1-string2”

在通过 MySQL 数据库使用 hibernate 和 jpa 的 Spring MVC 应用程序中,每当我尝试保存包含子实体的父实体时,都会收到有关子实体的以下错误消息:

Duplicate entry 'string1-string2' for key 'PRIMARY'  
Run Code Online (Sandbox Code Playgroud)

这里,string1string2指的是子实体的复合主键的两部分。 我该如何解决这个错误?

以下是在父实体中定义实体之间关系的方式Address

@ManyToOne(cascade = { CascadeType.ALL }, fetch=FetchType.EAGER)
@JoinColumns({ @JoinColumn(name = "usecode", referencedColumnName = "code", insertable = false, updatable = false),
        @JoinColumn(name = "usecodesystem", referencedColumnName = "codesystem", insertable = false, updatable = false)
})
public HL7GeneralCode use;
Run Code Online (Sandbox Code Playgroud)

以下是在子实体中定义关系的方式GeneralCode

@OneToMany(mappedBy = "use", cascade = {CascadeType.ALL})
private Set<HL7Address> addresses;
Run Code Online (Sandbox Code Playgroud)

单击此链接可以查看完整的堆栈跟踪。可以在此链接中找到
该实体的完整代码。 Address

可以在此链接中GeneralCode …

java spring hibernate jpa hibernate-mapping

5
推荐指数
1
解决办法
2963
查看次数

如何在浏览器关闭时让Spring生成的cookie过期?

Spring Boot应用程序具有REST服务,可在Spring Controller中设置cookie值,然后使用以下方法将cookie发送到响应中的客户端HttpServletResponse:

response.addCookie(new Cookie("AUTH1", "no"));
Run Code Online (Sandbox Code Playgroud)

但是当我关闭firefox,然后重新打开firefox并再次调用应用程序的url时,cookie值完全相同. 如何在浏览器关闭时确保销毁cookie值,以便在重新打开浏览器时cookie不存在? 可以在Spring Boot应用程序中配置吗?或者我是否需要在前端应用程序中配置它?


正在进行的努力:

response.setCookie()后端REST控制器中的所有行更改session.setAttribute()为相同键值对的行不会产生AngularJS客户端应用程序可以读取的任何内容,$cookies.get('keyname')即使它们是相同的键名. 有没有办法在Spring控制器中设置会话cookie,当用户关闭浏览器时会自动销毁?

我还试图@shazin通过使用方法来实现建议(因为cookie在控制器类中重建了很多次),但问题只是部分解决了.具体来说,我采取了以下步骤:

1.)我开始打开几个浏览器窗口,其中只有一个包含正在测试的应用程序.
2.)我更改了所有代码,如下所示,
3.)然后我用control-C杀死了应用程序,并且还杀死了在端口上运行的进程.
4.)然后我mvn clean package
5.)然后我再次启动应用程序java -jar jarname,并将其加载到新的InPrivate浏览器窗口中.
6.)我使用logout方法删除任何可能从先前版本中徘徊的cookie,
然后我使用GUI来触发新的cookie定义,这些定义按预期工作.
8.)然后我通过关闭包含正在测试的应用程序的浏览器窗口进行测试,然后重新打开一个新的浏览器窗口并再次导航到该站点,但cookie值仍然存在,所以这种方法还没有解决问题.
9.)最后,我关闭了两个打开的浏览器窗口(每个浏览器窗口都有一些自己打开的选项卡.关闭所有浏览器窗口后,我打开了一个新的浏览器窗口,发现cookie已被删除. 所以这个方法以下仅在关闭所有打开的浏览器窗口而不仅仅是包含该应用程序的浏览器窗口时才有效.

这是我写的实现@shazin建议的方法:

public Cookie getTempCookie(String key, String val){
    Cookie tempCookie = new Cookie(key, val);
    tempCookie.setMaxAge(-1);
    return tempCookie;
}
Run Code Online (Sandbox Code Playgroud)

以下是我如何从控制器内部的各种url模式处理程序调用该方法:

response.addCookie(getTempCookie("AUTH1", "yes"));
Run Code Online (Sandbox Code Playgroud)

当只有包含应用程序的窗口关闭时,我还能做些什么才能删除cookie? 在目前的形式中,如果用户关闭其浏览器窗口而没有意识到仍然打开另一个浏览器窗口,则仍然存在安全风险.

java spring servlets spring-boot

5
推荐指数
1
解决办法
4522
查看次数

找到LOCAL git分支的REMOTE父分支

如何获取git本地git当前提交已分支的远程分支的名称?

我假设这是一个4步骤,前三个步骤可能如下:


第一步:获取本地git仓库中当前分支的名称:

git rev-parse --abbrev-ref HEAD    
Run Code Online (Sandbox Code Playgroud)


第二步:从本地仓库获取当前检出的提交的哈希值:

git rev-parse HEAD          # full hash  
Run Code Online (Sandbox Code Playgroud)


第三步:获取远程git仓库上游跟踪分支的名称:

git rev-parse --abbrev-ref @{upstream}
Run Code Online (Sandbox Code Playgroud)


第四步:获取远程git仓库上的父上游跟踪分支的名称:

这样做需要什么具体代码?在阅读了@ ChrisJohnsen对其他帖子的回答之后,我想这个解决方案涉及查找从远程存储库中的另一个分支派生的最新提交.但是,链接发布的答案中的代码似乎都是为本地存储库设计的. 这个当前的问题是不同的,因为我问如何从本地存储库子分支中找到远程存储库父分支.

我正在添加bash标签,因为这些命令在可以使用bash脚本的CentOS服务器上运行.

git bash version-control github

5
推荐指数
1
解决办法
3466
查看次数

休眠QueryException:无法解析Spring Petclinic示例应用程序中的属性

我有以下JPA方法:

@SuppressWarnings("unchecked")
public Collection<Owner> findByPetType(Integer typeID) {
    Query query = this.em.createQuery("SELECT DISTINCT owner FROM Owner owner left join fetch owner.pets as pet WHERE pet.type_id LIKE :typeID");
    query.setParameter("typeID", typeID + "%");
    return query.getResultList();
}  
Run Code Online (Sandbox Code Playgroud)

它抛出以下错误消息:

org.hibernate.QueryException: could not resolve property: type_id of:  
org.springframework.samples.petclinic.model.Pet [SELECT DISTINCT owner FROM  
org.springframework.samples.petclinic.model.Owner owner left join fetch owner.pets  
as pet WHERE pet.type_id LIKE :typeID];  
nested exception is java.lang.IllegalArgumentException:  
org.hibernate.QueryException: could not resolve property: type_id of:  
org.springframework.samples.petclinic.model.Pet [SELECT DISTINCT owner FROM      
org.springframework.samples.petclinic.model.Owner owner left join fetch owner.pets …
Run Code Online (Sandbox Code Playgroud)

java spring hibernate jpa

4
推荐指数
1
解决办法
1万
查看次数

如何指定在终端上使用哪个版本的Java?

CentOS 7 devbox安装了Java 8.我需要使用Java 7来编译jar.所以我下载并安装了Java 7,但java -version仍然显示了Java 8. 如何确保使用Java 7在命令行编译jar?

以下是我安装Java 7的步骤:

# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/7u75-b13/jdk-7u75-linux-x64.rpm  
# rpm -ivh jdk-7u75-linux-x64.rpm
# export JAVA_HOME=/usr/java/latest
# java -version
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,java -version仍然指向Java 8,即使/usr/java/latest指向刚刚下载和安装的Java 7版本.

我想要运行的命令是java -jar gs-actuator-service-0.1.0.jar. 有人可以展示如何更改该特定命令中的语法以指定Java 7版本吗?或者我需要删除Java 8吗?如果是这样,我会采取哪些具体步骤?

java java-7 centos7

4
推荐指数
1
解决办法
2776
查看次数

UNMET PEER DEPENDENCY generator-karma @> = 0.9.0

node.js在CentOS 7服务器上安装5.6版本generator-angular,并且遇到以下错误,除了一些弃用警告:

UNMET PEER DEPENDENCY generator-karma@>=0.9.0
Run Code Online (Sandbox Code Playgroud)

我按照本教程的说明操作. 如何解决此错误以便npm能够成功安装generator-angular 还有,所有弃用警告都需要关注吗?有没有办法在generator-angular不使用弃用方法的情况下安装?

以下是显示ERROR的终端输出以及弃用警告:

[root@localhost ~]# npm install -g generator-angular
npm WARN deprecated CSSselect@0.4.1: the module is now available as 'css-select'
npm WARN deprecated CSSwhat@0.4.7: the module is now available as 'css-what'
npm WARN deprecated lodash@2.1.0: lodash@<3.0.0 is no longer maintained. Upgrade to lodash@^4.0.0.
/usr/lib
??? generator-angular@0.15.1 
? ??? chalk@1.1.1 
? ? ??? ansi-styles@2.1.0 
? ? ??? escape-string-regexp@1.0.4 
? ? ??? has-ansi@2.0.0 …
Run Code Online (Sandbox Code Playgroud)

javascript node.js angularjs yeoman-generator-angular

4
推荐指数
1
解决办法
4827
查看次数

在 Bash 中填充变量时没有这样的文件或目录

当我在 bash 脚本中运行以下命令时:

urlOfServer="$($repoURL_StripLastFour | awk -F'/' '{print $1}')"  
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

192.168.1.12:7999/pcfpt/scriptsforexamples: No such file or directory
Run Code Online (Sandbox Code Playgroud)

可以看到repoURL_StripLastFour变量的值为192.168.1.12:7999/pcfpt/scriptsforexamples脚本运行时的值。该值是在运行时由脚本的其他元素自动创建的,因此我不能简单地将其作为文字传递。

需要什么特定语法来解决此错误,以便urlOfServer可以成功填充变量?

我已经尝试过多种移动引号和括号的变体。

linux bash

4
推荐指数
1
解决办法
7762
查看次数

尝试按发行版名称下载指定发行版时,GitHub CLI 出现“找不到发行版”

即使我们剪切并粘贴了之前运行的命令release not found返回的版本的精确名称,也会抛出退出代码 1 的错误。gh release list --repo $repoWithToken

GitHub 错误日志的相关部分是:

About list releases
exact_name_of_release_linux_n.1.2       _linux_n.1.2    2022-09-19T23:28:08Z
About to download release
release not found
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

完整的工作流程代码如下:

About list releases
exact_name_of_release_linux_n.1.2       _linux_n.1.2    2022-09-19T23:28:08Z
About to download release
release not found
Error: Process completed with exit code 1.
Run Code Online (Sandbox Code Playgroud)

$repoWithToken变量已正确填充,因为gh release list --repo $repoWithToken命令运行时没有错误,如上面的日志所示。

以上使用此链接中的文档。

当我们更改命令以使用标签名称以gh release download _linux_n.1.2 --repo $repoWithToken更类似于链接中文档中给出的示例时,会引发相同的错误。

问题

gh release download为了 …

github github-actions github-cli

4
推荐指数
1
解决办法
2676
查看次数