java 请问我的实体类 为何总报这样的错? 请求J2EE JAVA 高人参与 java.io.NotSerializableException:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 请问我的实体类 为何总报这样的错? 请求J2EE JAVA 高人参与 java.io.NotSerializableException:相关的知识,希望对你有一定的参考价值。

java.io.NotSerializableException: com.joe.entity.UserInfo
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1245)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1069)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1369)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:380)
at java.util.Vector.writeObject(Vector.java:1018)
at sun.reflect.GeneratedMethodAccessor224.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1515)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:959)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:517)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:463)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:667)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4499)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:448)
at org.apache.catalina.core.StandardService.stop(StandardService.java:584)
at org.apache.catalina.core.StandardServer.stop(StandardServer.java:744)
at org.apache.catalina.startup.Catalina.stop(Catalina.java:616)
at org.apache.catalina.startup.Catalina.start(Catalina.java:591)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

你这个类没有实现序列化哈,没有序列化的类就不能转化成字节流在网络中传输,你的这个类应该要在网络中传输所以才会报错,只要你实现Serializable接口就可以了,望采纳 参考技术A 当实例需要具有序列化接口时,抛出此异常。序列化运行时或实例的类会抛出此异常。参数应该为类的名称。
解决办法,让你的实体类实现Serializable接口就ok了,java.io.Serializable
参考技术B 需要实现:java.io.Serializable 接口。
如果对象需要在网络传输,或者持久化到硬盘的话,需要实现 java.io.Serializable 的接口。
参考技术C NotSerializableException: 没有序列化异常。
public class UserInfo implements Serializable 这样就好了!
参考技术D 无法序列化,注意是否实现了Serializable接口

可参考:http://www.javaeye.com/topic/121311

参考资料:http://www.javaeye.com/topic/121311

JS请求报错:Unexpected token T in JSON at position 0

<?php 
/*
最近做一个ajax validate表单验证提交的代码,在ajax提交的时候
JS请求报错:Unexpected token T in JSON at position 0

描述:

这是一个请求,参数的地方报这要的错,请问是为什么?
百思不得其解啊
解决方案1:

去看下json的格式要求,JSON.parse()方法对json串要求很严格
解决方案2:

http://www.bejson.com/
用这个网址测试试试json格式是不是有误,换行,单引号什么的会导致报错,格式要求很严格

以下会导致报错:
JSON字符串里的非数字型键值没有双引号
JSON中存在t这样的制表符,看起来和空格一样,但是就是因为它的存在校验不通过。去掉就能过了。
编辑器有bom头也会造成
解决方案3:

某个地方用了JSON.parse,但是传入的参数不是一个合格的json字符串。

以上介绍了“ (javascript)JS请求报错:Unexpected token T in JSON at position 0”的问题解答,希望对有需要的网友有所帮助。

*/

/**
*js ajax发送代码
*/

 $.validator.setDefaults({
    submitHandler: function() {
      // alert("提交事件!");return false;
       var query=new Object();
        query.user_name=$(‘#user_name‘).val();
        query.sex=$(‘#sex‘).val();
        query.country=$(‘#country‘).val();
        query.email=$(‘#email‘).val();
        query.mobile=$(‘#mobile‘).val();
        query.weixin=$(‘#weixin‘).val();
        query.address=$(‘#address‘).val();
        query.messages=$(‘#messages‘).val();
        var url="/controller/apply.php";
        $.ajax({
            url:url,
            type:"POST",
            data:query,
            dataType:"json",
            success:function(res){
                if(res.status==1){
                    alert(res.msg);
                    window.location.replace("http://www.fxbob.com/a/zhongwen/hezuohuoban/20170620/21.html");
                }else{
                    alert(res.msg);
                }
            },
            error: function(XMLHttpRequest, textStatus, errorThrown) {
            	console.log(XMLHttpRequest);
            	 // console.log(errorThrown);
				 alert(XMLHttpRequest.status);
				 alert(XMLHttpRequest.readyState);
				 alert(textStatus);
			},
			complete: function(XMLHttpRequest, textStatus) {
			 	this; // 调用本次AJAX请求时传递的options参数
			}
        });
        return false;
    }
});


/**
*php的ajax接收代码Apply.php如下:
*/


<?php 
// header("Content-type: text/html; charset=utf-8");
define(‘DEDEMOB‘, ‘Y‘);
require_once(dirname(__FILE__)."/../include/common.inc.php");
//加载邮件类
require_once(dirname(__FILE__)."/../include/Smtp.class.php");
if($_POST){
	$data=$_POST;
	$str=<<<EOT
	<html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf8" />
        <title>Untitled Document</title>
        </head>
        <body>
       		<p>全名:{$data[‘user_name‘]}</p>
       		<p>性别:{$data[‘sex‘]}</p>
       		<p>国家:{$data[‘country‘]}</p>
       		<p>地址:{$data[‘address‘]}</p>
       		<p>邮箱:{$data[‘email‘]}</p>
       		<p>手机:{$data[‘mobile‘]}</p>
       		<p>微信:{$data[‘weixin‘]}</p>
       		<p>留言:{$data[‘messages‘]}</p>
        </body>
    </html>
EOT;
	//[email protected]
	//******************** 配置信息 ********************************
	$smtpserver = "smtp.163.com";//SMTP服务器
	$smtpserverport =25;//SMTP服务器端口
	$smtpusermail = "[email protected]";//SMTP服务器的用户邮箱
	$smtpemailto = "[email protected]";//发送给谁
	$smtpuser = "[email protected]";//SMTP服务器的用户帐号,注:部分邮箱只需@前面的用户名
	$smtppass = "rainliu213";//SMTP服务器的用户密码
	$mailtitle = "申请经纪人";//邮件主题
	$mailcontent = $str;//邮件内容
	$mailtype = "HTML";//邮件格式(HTML/TXT),TXT为文本邮件
	//************************ 配置信息 ****************************
	$smtp = new Smtp($smtpserver,$smtpserverport,true,$smtpuser,$smtppass);//这里面的一个true是表示使用身份验证,否则不使用身份验证.
	// $smtp->debug = true;//是否显示发送的调试信息
	$state = $smtp->sendmail($smtpemailto, $smtpusermail, $mailtitle, $mailcontent, $mailtype);
	if($state){
		$res[‘status‘]=1;
		$res[‘msg‘]="提交成功,请等待申核";
	}else{
		$res[‘status‘]=0;
		$res[‘msg‘]="网络忙,提交失败,请稍候再尝试";
	}
	echo  json_encode($res);exit;
}





/**
*最后在网上查了好多这方面的错误,排查到是这个apply.php文件带bom头导致json解析错误导致引起了,一个小小json排查错误花了三个小时时间。无语了
*/

 

以上是关于java 请问我的实体类 为何总报这样的错? 请求J2EE JAVA 高人参与 java.io.NotSerializableException:的主要内容,如果未能解决你的问题,请参考以下文章

使用Java为何总写出C风格的代码?

使用Java为何总写出C风格的代码?

arcmap发布服务,昨天还好好的,今天却找不到服务了,重新添加服务却报这样的错。

asp.net 请问实体类的属性要全部加载吗?

JS请求报错:Unexpected token T in JSON at position 0

Ubuntu16.04编译Android5.0报了这样的错,请问怎么解决