我在其中一个实时服务器上遇到以下异常(运行相同代码的其他服务器似乎没问题):
java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/domwith the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFctory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom
at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:67)
Run Code Online (Sandbox Code Playgroud)
我很确定我在类路径中有Xalan和Saxon jar(使用IBM Java 1.5).
你有什么想法还有什么可能是错的吗?
编辑:
这是导致问题的代码:
XPathFactory factory = XPathFactory.newInstance();
Run Code Online (Sandbox Code Playgroud)
它运行在一个大致基于catalina引擎的自定义Web服务器上.
我有一个eclipse的.classpath文件,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="output" path="bin"/>
<classpathentry kind="lib" path="/libraries/jee/servlet-api.jar"/>
<classpathentry kind="lib" path="/libraries/junit/junit-4.6.jar"/>
<classpathentry kind="lib" path="/libraries/log4j/log4j-1.2.15.jar"/>
</classpath>
Run Code Online (Sandbox Code Playgroud)
我想在类路径中添加一个完整的jar目录 - 我喜欢eclipse(或更确切地说,我们使用.classpath格式的基于ant的构建过程)来了解驻留在单个目录中的几个jar,而不直接指定它们.我怎样才能做到这一点?
在AWS SDK for Java入门教程之后,运行AwsConsoleApp示例:
java -cp .:/Users/marius/Dev/aws-java-sdk-1.3.8/lib/aws-java-sdk-1.3.8.jar AwsConsoleApp
Run Code Online (Sandbox Code Playgroud)
我得到以下问题:
===========================================
Welcome to the AWS Java SDK!
===========================================
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.amazonaws.util.VersionInfoUtils.<clinit>(VersionInfoUtils.java:41)
at com.amazonaws.ClientConfiguration.<clinit>(ClientConfiguration.java:31)
at com.amazonaws.services.ec2.AmazonEC2Client.<init>(AmazonEC2Client.java:95)
at AwsConsoleApp.init(AwsConsoleApp.java:93)
at AwsConsoleApp.main(AwsConsoleApp.java:105)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 5 more
Run Code Online (Sandbox Code Playgroud)
编译时在类路径中加载的相同完整SDK也在运行时期间给出,因此我无法弄清楚缺少什么.
我曾经喜欢包含所有的clojure.contrib,并且需要所有的库.这使得find-doc可用作发现工具.
如今(clojure 1.4)clojure.contrib被分成许多子库.而这相当破坏了我的方案,这也意味着每次我需要一个新的库时我都不得不重新启动JVM.
所以我正忙着构建一个包含多行的project.clj文件:
[org.clojure/algo.generic "0.0.6"]
....
[org.clojure/data.xml "0.0.4"]
....
Run Code Online (Sandbox Code Playgroud)
因此,我可以让leiningen将每个clojure contrib库放在类路径上,无论我是否需要它们.
而且我认为这将是一个壮观的颈部疼痛,版本号和所有.
我想知道是否有人有更好的方法来做同样的事情?
编辑:考虑一下,如果某个网页有一个库名和当前版本的列表,我可以很容易地把它变成一个项目文件.
我已经看过很多教程和应用程序将他们的jar放在构建路径中,而其他人将它放在他们的web-inf/lib文件夹中,是否有任何显着差异?两者的优点和缺点是什么?我将一个jar放在libs文件夹中并将jar放在构建路径中的指示器是什么?
我试图使用scala从classpath读取属性文件.但它看起来不起作用,它与java不同.以下2个代码片段,一个是java(工作),另一个是scala(不工作).我不明白有什么区别.
// working
BufferedReader reader = new BufferedReader(new InputStreamReader(
Test.class.getResourceAsStream("conf/fp.properties")));
// not working
val reader = new BufferedReader(new InputStreamReader(
getClass.getResourceAsStream("conf/fp.properties")));
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
at com.ebay.searchscience.searchmetrics.fp.conf.FPConf$.main(FPConf.scala:31)
at com.ebay.searchscience.searchmetrics.fp.conf.FPConf.main(FPConf.scala)
Run Code Online (Sandbox Code Playgroud) 如果在java类路径中有相对路径,那么这只是搜索当前工作目录.对清单文件中声明的类路径是否保持相同.在清单文件中它是相对于jar所在的目录?
防爆.CMDLINE
java -cp somejar.jar
Run Code Online (Sandbox Code Playgroud)
要么
表现
Class-Path: somejar.jar
Run Code Online (Sandbox Code Playgroud) 我在Eclipse(windows)中使用java,我正在尝试使用:
myClass.getResource("/image.jpg"),
Run Code Online (Sandbox Code Playgroud)
而image.jpg存在于root loacation"myProject /"中.它返回null.
我检查了很多其他线程,但没有一个解决了我的问题.
所以我试着评估一下:
this.getClass().getResource("/").getPath();
Run Code Online (Sandbox Code Playgroud)
它返回"myProject/build/classes".
所以我检查了这个目录的项目配置,并找到了完全相同的目录
Java构建路径 - >源 - >默认输出文件夹
我的问题是:
为什么我的资源的默认目录是输出文件夹?
如上所述,我想从另一个文件夹中获取资源,但尝试调用"/../"不起作用...如何加载其他未嵌套在我的类dir中的资源?(我可以改变我的输出目录,但我认为它会非常难看......)
当我尝试设置classpath时,我遇到了错误.我正在使用CentyOS.我试图在命令提示符中编译一个java文件,因为我正在设置类路径.在Intellij中执行相同的java程序时,运行正常.在从命令提示符执行相同操作时,它显示缺少jar的错误,因此我将类路径添加到看到错误的lib.
[root@a admin]# export CLASSPATH=/home/admin/TagAPI/lib/org.json-20120521.jar ;/home/admin/TagAPI/lib/testng-6.8.21.jar
invalid file (bad magic number): Exec format error
Run Code Online (Sandbox Code Playgroud)
任何建议都会有所帮助.我是java和linux的新手,谢谢!
我正在使用教程创建留言簿Web应用程序,每当我尝试连接到localhost:8080时,我收到以下错误:
HTTP ERROR 500
Problem accessing /. Reason:
Unable to compile class for JSP:
An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files
Stacktrace:
Caused by:
org.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 1 in the generated java file
The type java.io.ObjectInputStream cannot be resolved. It is indirectly referenced from required .class files
Stacktrace:
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:92)
at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
at …Run Code Online (Sandbox Code Playgroud)