字符串arg[]导致java.lang.NoClassDefFoundError
所以我有一个脚本文件,我们正在内部使用它进行测试。我想使用该脚本在internet上进行测试,但当我给它一个url而不是ip地址时,它会抛出一个java.lang.NoClassDefFoundError 这是为什么?我能做些什么来修复它 这是脚本文件:字符串arg[]导致java.lang.NoClassDefFoundError,java,Java,所以我有一个脚本文件,我们正在内部使用它进行测试。我想使用该脚本在internet上进行测试,但当我给它一个url而不是ip地址时,它会抛出一个java.lang.NoClassDefFoundError 这是为什么?我能做些什么来修复它 这是脚本文件: import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.io.IOExce
import java.io.BufferedReader;
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
public class SOAPClient4XG
{
public static void main(String[] paramArrayOfString)
throws Exception
{
if (paramArrayOfString.length < 2) {
System.err.println("Usage: java SOAPClient4XG http://soapURL soapEnvelopefile.xml [SOAPAction]");
System.err.println("SOAPAction is optional.");
System.exit(1);
}
String str1 = paramArrayOfString[0];
String str2 = paramArrayOfString[1];
String str3 = "";
if (paramArrayOfString.length > 2) {
str3 = paramArrayOfString[2];
}
URL localURL = new URL(str1);
URLConnection localURLConnection = localURL.openConnection();
HttpURLConnection localHttpURLConnection = (HttpURLConnection)localURLConnection;
FileInputStream localFileInputStream = new FileInputStream(str2);
ByteArrayOutputStream localByteArrayOutputStream = new ByteArrayOutputStream();
copy(localFileInputStream, localByteArrayOutputStream);
localFileInputStream.close();
byte[] arrayOfByte = localByteArrayOutputStream.toByteArray();
localHttpURLConnection.setRequestProperty("Content-Length", String.valueOf(arrayOfByte.length));
localHttpURLConnection.setRequestProperty("Content-Type", "text/xml; charset=utf-8");
localHttpURLConnection.setRequestProperty("SOAPAction", str3);
localHttpURLConnection.setRequestMethod("POST");
localHttpURLConnection.setDoOutput(true);
localHttpURLConnection.setDoInput(true);
OutputStream localOutputStream = localHttpURLConnection.getOutputStream();
localOutputStream.write(arrayOfByte);
localOutputStream.close();
InputStreamReader localInputStreamReader = new InputStreamReader(localHttpURLConnection.getInputStream());
BufferedReader localBufferedReader = new BufferedReader(localInputStreamReader);
String str4;
while ((str4 = localBufferedReader.readLine()) != null) {
System.out.println(str4);
}
localBufferedReader.close();
}
public static void copy(InputStream paramInputStream, OutputStream paramOutputStream)
throws IOException
{
synchronized ()
{
synchronized (paramOutputStream)
{
byte[] arrayOfByte = new byte['Ā'];
for (;;) {
int i = paramInputStream.read(arrayOfByte);
if (i == -1) break;
paramOutputStream.write(arrayOfByte, 0, i);
}
}
}
}
}
以下是堆栈跟踪:
C:\Documents and Settings\accounting\Desktop\springer_miller_docs>java -cp .SOAP
Client4XG http://foobar.gotdns.com:8080/axis2/services/HTNGListener checkinin
quiry.sms http://htng.org/1.1/Listener.Wsdl#ReceiveMessageAsync
Exception in thread "main" java.lang.NoClassDefFoundError: http://foobar/gotd
ns/com:8080/axis2/services/HTNGListener
这行代码
URL localURL = new URL(str1);
将抛出一个java.net.MalformedURLException:no protocol:192.168.0.127
作为您给出的参数
是协议感知的,您应该给它一些类似http://soapURL
(按照程序本身的建议)而不是普通IP地址
编辑
更改问题后不相关。您的问题与代码无关,而是与代码的执行方式有关 命令行显示将主文件放到类路径上,然后在名为第一个URL的类中执行main 离开-cp,您应该会很好(至少从这个堆栈跟踪中)
参考:什么是完整的异常文本?请提供完整的stacktrace。请始终提供完整的stacktrace,因为您没有告诉我们找不到哪个类…添加了stack trace,这是否足以回答和回答,或者您需要更多,我很乐意提供您需要的内容。问题是相同的,只是url而不是ip,另外.127只是为了举例说明,我知道它不起作用
URL localURL = new URL(str1);