我尝试从数据库中获取一些信息并在applet上显示。因为我正在设置连接并通过另一个类获取数据然后将其传输到applet但在applet代码中,当我将inputstream设置为该类文件时,我得到此异常: -
Exception Found :- java.io.StreamCorruptedException: invalid stream header: CAFEBABE
java.io.StreamCorruptedException: invalid stream header: CAFEBABE
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:806)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299)
at examapplet.init(examapplet.java:118)
at sun.applet.AppletPanel.run(AppletPanel.java:434)
at java.lang.Thread.run(Thread.java:745)
这是我的applet代码: -
URL url1=new URL(getDocumentBase(),"getLang.class");
System.out.println(""+url1);
URLConnection urc1=url1.openConnection();
ObjectInputStream ois1=new ObjectInputStream(urc1.getInputStream()); // exception line
String lang=(String)ois1.readObject();
StringTokenizer st=new StringTokenizer(lang,"@");
langc=new Choice();
while(st.hasMoreTokens())
{
langc.addItem(st.nextToken());
}
ois1.close();
langc.addItemListener(this);
langc.setBounds(200,120,100,30);
add(langc);
这是我的getLang课程
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
public class getLang extends HttpServlet
{
Connection con=null;
Statement st=null;
ResultSet rs=null;
public void doGet(HttpServletRequest req,HttpServletResponse res) throws IOException,ServletException
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:online");
st=con.createStatement();
rs=st.executeQuery("select * from msubjectinfo");
String lang="";
while(rs.next())
{
lang+= rs.getString(2) + "@";
}
ObjectOutputStream oos=new ObjectOutputStream(res.getOutputStream());
oos.writeObject(lang);
}
catch(Exception e)
{
System.out.println("Exception Found :--"+e);
}
}
}
我如何解决这个问题或者告诉我任何其他方法来检索字符串?