小弟初学webservice,碰到一个错误:E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\classes>java cn.com.pansky.we
bservice.xfire.study.SayHiClient
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/xfire/se
rvice/binding/ObjectServiceFactory
at cn.com.pansky.webservice.xfire.study.SayHiClient.main(SayHiClient.jav
a:14)
Caused by: java.lang.ClassNotFoundException: org.codehaus.xfire.service.binding.
ObjectServiceFactory
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)
... 1 more
我完全是手写开发,没用到eclipse,直接在tomcat的webapp目录下建的项目,出现上面错误后,我找到了ObjectServiceFactory这个类,是在xfire-core-1.2.6.jar这个包中,而我已经把这个包放到了lib目录下,为什么会出现上面的错误呢?为什么会找不到类?还有就是在手写程序的时候,如果有些类是在jar包中的,而类SayHiClient.java中用到了jar包中的几个类,
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
我该如何让其通过编译呢? (我编译老是出错,所以编译放到了eclipse中做的)恳请各位高手指教
bservice.xfire.study.SayHiClient
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/xfire/se
rvice/binding/ObjectServiceFactory
at cn.com.pansky.webservice.xfire.study.SayHiClient.main(SayHiClient.jav
a:14)
Caused by: java.lang.ClassNotFoundException: org.codehaus.xfire.service.binding.
ObjectServiceFactory
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)
... 1 more
我完全是手写开发,没用到eclipse,直接在tomcat的webapp目录下建的项目,出现上面错误后,我找到了ObjectServiceFactory这个类,是在xfire-core-1.2.6.jar这个包中,而我已经把这个包放到了lib目录下,为什么会出现上面的错误呢?为什么会找不到类?还有就是在手写程序的时候,如果有些类是在jar包中的,而类SayHiClient.java中用到了jar包中的几个类,
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
我该如何让其通过编译呢? (我编译老是出错,所以编译放到了eclipse中做的)恳请各位高手指教
解决方案 »
- 开发模式讨论
- 服务器部署java类
- 怎样才能学好java?
- Servlet中调用getServletName()方法出现错误,请问为什么啊?
- new Byte[(int)file.length()]中会不会出现 length 超过 int范围的情况?如果超过了会怎么样
- 高分求救啊!!!!!!!!!在线等待!!!
- 通过JSP发送邮件,怎么做?!!!
- 请问什么是硬编码?
- 请高手指教,急~~~~,关于配置java web start的
- [讨论]在大家的Project(Java或其他语言不限)中XML都扮演了怎样的角色
- 关于ajax
- MyEclipse6.5+Weblogic92开发,启动项目出错!急!!1
java -cp xfire-core-1.2.6.jar cn.com.pansky.we
bservice.xfire.study.SayHiClient
嫌麻烦的话,从Eclipse中运行吧。
javac -cp xfire-core-1.2.6.jar SayHiClient.java
set path=%path%;e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\*.jar
set classpath=%classpath%;e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\*.jarE:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\classes>java cn.com.pansky.we
bservice.xfire.study.SayHiClient
Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/xfire/se
rvice/binding/ObjectServiceFactory
at cn.com.pansky.webservice.xfire.study.SayHiClient.main(SayHiClient.jav
a:14)
Caused by: java.lang.ClassNotFoundException: org.codehaus.xfire.service.binding.
ObjectServiceFactory
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)
... 1 more我把lib下所有jar包都加入到path classpath中 但还是报这个错误 到底是怎么回事
set classpath=%classpath%;e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\*
用for循环添加jar路径
set cur_dir=%cd%
cd e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib
for /f %%i in ('dir /B *.jar') do (
set classpath=!classpath!;%%~fi
)
echo %classpath%
java -cp %classpath% xxx
cd %cur_dir%
好像真是那样 一共有40多个包 那该怎么办?
set classpath=%classpath%;e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\
这样也不行 难道必须一个一个文件写?
好像也不行啊 自己稍微改了一下 还是不行set cur_dir=%cd%
cd e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib
for /f %%i in ('dir /B *.jar') do (
set classpath=!classpath!;%%~fi
)
echo %classpath%
cd %cur_dir%
java -cp %classpath% cn.com.pansky.webservice.xfire.study.SayHiClient它直接找不到SayHiClient了 我对批处理不懂 是不是没有把原来的classpath加上啊
打印出来的路径核对一下看看,有没有漏的
把
set classpath=!classpath!;%%~fi
改成
set classpath=%classpath%;%%~fi是%号不是!
即设置 setlocal enabledelayedexpansion
@echo off
setlocal enabledelayedexpansion
set cur_dir=%cd%
cd e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib
for /f %%i in ('dir /B *.jar') do (
set classpath=!classpath!;%%~fi
)
echo %classpath%
java -cp %classpath% cn.com.pansky.webservice.xfire.study.SayHiClient
cd %cur_dir%
@echo on
执行批处理的时候就有问题了
E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\classes>@echo off
setlocal enabledelayedexpansion
set cur_dir=%cd%
cd e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib
for /f %%i in ('dir /B *.jar') do (
此时不应有 %%i。
set classpath=!classpath!;%%~fi
)
echo %classpath%
!classpath!;%%~fi
java -cp %classpath% cn.com.pansky.webservice.xfire.study.SayHiClient
Exception in thread "main" java.lang.NoClassDefFoundError: cn/com/pansky/webserv
ice/xfire/study/SayHiClient
Caused by: java.lang.ClassNotFoundException: cn.com.pansky.webservice.xfire.stud
y.SayHiClient
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)
Could not find the main class: cn.com.pansky.webservice.xfire.study.SayHiClient.
Program will exit.
cd %cur_dir%
@echo on
我给你的脚本,是要你保存成bat文件执行的,即
把上面的脚本拷贝到某个文件,如 sample.bat
然后在dos窗口执行sample.bat另外,LZ你的jar文件确实是保存在e:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib
路经下吗?
为什么你会说 此时不应有 %%i。
批处理到底还是有点麻烦的。
我把你的批处理放到addToCP.bat中,并执行但还是报错
E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\classes>addToCP.bat
.;C:\oraclexe\app\oracle\product\10.2.0\server\bin;.;C:\Java\jdk1.6.0_26\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\S
ystem32\Wbem;D:\apache-ant-1.8.2\bin;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jstl.jar;E:\test\apache-tomc
at-6.0.14\webapps\stove\WEB-INF\lib\standard.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\activation-1.1.j
ar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\commons-codec-1.3.jar;E:\test\apache-tomcat-6.0.14\webapps\sto
ve\WEB-INF\lib\commons-httpclient-3.0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\commons-logging-1.0.4.j
ar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jaxen-1.1-beta-9.jar;E:\test\apache-tomcat-6.0.14\webapps\stov
e\WEB-INF\lib\jdom-1.0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\stax-api-1.0.1.jar;E:\test\apache-tomc
at-6.0.14\webapps\stove\WEB-INF\lib\stax-utils-20040917.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\wsdl4
j-1.6.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\wstx-asl-3.2.0.jar;E:\test\apache-tomcat-6.0.14\webap
ps\stove\WEB-INF\lib\xfire-aegis-1.2.6.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\xfire-core-1.2.6.jar;E
:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\xfire-all-1.2.6.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB
-INF\lib\xmlsec-1.3.0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\bcprov-jdk15-133.jar;E:\test\apache-tom
cat-6.0.14\webapps\stove\WEB-INF\lib\commons-attributes-api-2.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\l
ib\commons-beanutils-1.7.0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\commons-discovery-0.2.jar;E:\test\
apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jaxb-api-2.0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\j
axb-impl-2.0.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jaxb-xjc-2.0.1.jar;E:\test\apache-tomcat-6.0.1
4\webapps\stove\WEB-INF\lib\jaxws-api-2.0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jetty-6.1.2rc0.jar;
E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jetty-util-6.1.2rc0.jar;E:\test\apache-tomcat-6.0.14\webapps\stov
e\WEB-INF\lib\jmock-1.0.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\jsr173_api-1.0.jar;E:\test\apache-t
omcat-6.0.14\webapps\stove\WEB-INF\lib\junit-3.8.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\mail-1.4.j
ar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\opensaml-1.0.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\
WEB-INF\lib\saaj-api-1.3.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\saaj-impl-1.3.jar;E:\test\apache-tom
cat-6.0.14\webapps\stove\WEB-INF\lib\servlet-api-2.3.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\servlet-
api-2.5-6.1.2rc0.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\spring-1.2.6.jar;E:\test\apache-tomcat-6.0.1
4\webapps\stove\WEB-INF\lib\wss4j-1.5.1.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\xbean-2.2.0.jar;E:\te
st\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\xbean-spring-2.8.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-IN
F\lib\xercesImpl-2.6.2.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\xfire-jsr181-api-1.0-M1.jar;E:\test\ap
ache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\xml-apis-1.0.b2.jar;E:\test\apache-tomcat-6.0.14\webapps\stove\WEB-INF\lib\
XmlSchema-1.1.jar
Exception in thread "main" java.lang.NoClassDefFoundError: cn/com/pansky/webservice/xfire/study/SayHiClient
Caused by: java.lang.ClassNotFoundException: cn.com.pansky.webservice.xfire.study.SayHiClient
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)
Could not find the main class: cn.com.pansky.webservice.xfire.study.SayHiClient. Program will exit.
java -cp %classpath% cn.com.pansky.webservice.xfire.study.SayHiClient
cd %cur_dir%终于不是classpath的错误了 谢谢你的耐心回答
但代码有问题