如果您对java.lang.ClassCastException:无法将oracle.sql.CLOB强制转换为oracle.sql.CLOB和oracle无法将null值感兴趣,那么这篇文章一定是您
如果您对java.lang.ClassCastException:无法将oracle.sql.CLOB强制转换为oracle.sql.CLOB和oracle无法将null值感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解java.lang.ClassCastException:无法将oracle.sql.CLOB强制转换为oracle.sql.CLOB的各种细节,并对oracle无法将null值进行深入的分析,此外还有关于android – java.lang.ClassCastException:com.parse.ParseObject无法强制转换为、Caused by: java.lang.ClassCastException: class java.lang.Double cannot be cast to class org.apach...、ClassCastException:java.math.BigInteger在连接MySQL时无法强制转换为java.lang.Long、ClassCastException:不能在连接到MySQL时将java.math.BigInteger强制转换为java.lang.Long的实用技巧。
本文目录一览:- java.lang.ClassCastException:无法将oracle.sql.CLOB强制转换为oracle.sql.CLOB(oracle无法将null值)
- android – java.lang.ClassCastException:com.parse.ParseObject无法强制转换为
- Caused by: java.lang.ClassCastException: class java.lang.Double cannot be cast to class org.apach...
- ClassCastException:java.math.BigInteger在连接MySQL时无法强制转换为java.lang.Long
- ClassCastException:不能在连接到MySQL时将java.math.BigInteger强制转换为java.lang.Long
java.lang.ClassCastException:无法将oracle.sql.CLOB强制转换为oracle.sql.CLOB(oracle无法将null值)
我最近升级了一个应用程序,使其可以使用JAVA 7和JBoss 7.1.1运行。该应用程序最初是在JAVA 5和Jboss
4.2.2上开发的。该应用程序使用hibernate3进行持久化。
在新平台上,尝试插入具有上述错误的带有CLOB字段的表时,应用程序失败。我正在使用ojdbc14.jar(后端数据库Oracle 10.2.0.3)
这些是我在jboss 7.1.1配置中验证的:
- 为Oracle创建正确的模块。确保正确的模块目录中存在ojdbc14.jar
- 确保jboss目录中其他任何地方都没有其他冲突的ojdbc.jar
- 确保该应用程序未引用其他ojdbc.jar。
任何见解都会有所帮助。我花了将近一个星期的时间来尝试解决此问题。
非常感谢
答案1
小编典典我解决了这个问题。发布此答案,希望它可能对某人有用。
当我检查查询检索到的CLOB的实例类型时,它显示为oracle.sql.CLOB。因此,我认为它一定是ojdbc.jar的版本不匹配。我花了数百万亿次检查我的项目,以获取ojdb.jar的多个副本。没有。
最终,事实证明这是hibernate和ojdbc之间的冲突。我将引用更改为java.sql.Clob。Hibernate使用java.sql.Clob。这样就解决了问题。
android – java.lang.ClassCastException:com.parse.ParseObject无法强制转换为
我创建了2个类(Meal,Restaurant),它们扩展了ParSEObject,并创建了2个自定义适配器(BottomFragmentMealAdapter,RestaurantAdapter).我尝试在BottomFragmentMealAdapter(它可以)为RestaurantAdapter做任何事情.但它不起作用.
这是我的日志:
FATAL EXCEPTION: main
Process: com.bogazici.menumizer, PID: 14739
java.lang.ClassCastException: com.parse.ParSEObject cannot be cast to com.bogazici.menumizer.Restaurant
at com.bogazici.menumizer.RestaurantAdapter.getItemView(RestaurantAdapter.java:17)
at com.parse.ParseQueryAdapter.getView(ParseQueryAdapter.java:547)
at android.widget.AbsListView.obtainView(AbsListView.java:2347)
at android.widget.ListView.makeAndAddView(ListView.java:1864)
at android.widget.ListView.fillDown(ListView.java:698)
at android.widget.ListView.fillFromTop(ListView.java:759)
at android.widget.ListView.layoutChildren(ListView.java:1659)
at android.widget.AbsListView.onLayout(AbsListView.java:2151)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.v4.widget.SwipeRefreshLayout.onLayout(SwipeRefreshLayout.java:581)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.v4.view.ViewPager.onLayout(ViewPager.java:1627)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.support.design.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1034)
at android.support.design.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:744)
at android.support.design.widget.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:42)
at android.support.design.widget.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:1180)
at android.support.design.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:757)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1703)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1557)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1466)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:579)
at android.widget.FrameLayout.onLayout(FrameLayout.java:514)
at android.view.View.layout(View.java:15671)
at android.view.ViewGroup.layout(ViewGroup.java:5038)
at android.view.ViewRootImpl.performlayout(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1843)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1061)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5885)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:767)
at android.view.Choreographer.doCallbacks(Choreographer.java:580)
at android.view.Choreographer.doFrame(Choreographer.java:550)
at android.view.Choreographer$FramedisplayEventReceiver.run(Choreographer.java:753)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(Zyg
这是我的RestaurantAdapter
public class RestaurantAdapter extends ParseQueryAdapter<Restaurant> {
//top line is 17
private AlphaAnimation buttonClick;
public RestaurantAdapter(Context context, final String filter_edit, final String filter_city, final String filter_region,0 final int filter_sort) {
super(context, new ParseQueryAdapter.QueryFactory<Restaurant>() {
public ParseQuery<Restaurant> create() {
// Here we can configure a ParseQuery to display
// only top-rated meals.
ParseQuery query = new ParseQuery("Restaurant");
query.whereContains("city", filter_city);
if(!filter_region.equals("*Hepsi*")&&!filter_region.equals("*All*"))
query.whereContains("region",filter_region);
if(filter_edit.equals("nothing")){
}else{
query.whereStartsWith("restaurant", filter_edit);
}
switch(filter_sort){
case 0:
query.orderByAscending("averagePrice");
break;
case 1:
query.orderByDescending("averagePrice");
break;
case 2:
query.orderByAscending("restaurant");
break;
case 3:
query.orderByDescending("averagePoint");
break;
default:
query.orderByAscending("restaurant");
break;
}
return query;
}
});
}
@Override
public View getItemView(Restaurant restaurant, View v, ViewGroup parent) {
//buttonClick = new AlphaAnimation(1F, 0.8F);
if (v == null) {
v = View.inflate(getContext(), R.layout.restaurant_list_item, null);
}
super.getItemView(restaurant, v, parent);
final String str_call = restaurant.getPhone();
TextView locationTextView = (TextView) v.findViewById(R.id.restaurant_location);
String str_location= restaurant.getRegion()+", "+restaurant.getCity();
locationTextView.setText(str_location);
TextView nameTextView = (TextView) v.findViewById(R.id.restaurant_name);
nameTextView.setText(restaurant.getName());
TextView pointTextView = (TextView) v.findViewById(R.id.restaurant_point);
String str_point = String.valueOf(restaurant.getAveragePoint());
pointTextView.setText(str_point);
TextView priceTextView = (TextView) v.findViewById(R.id.restaurant_averageprice);
String str_price = String.valueOf(restaurant.getAveragePrice())+" TL";
priceTextView.setText(str_price);
ImageView callImage = (ImageView) v.findViewById(R.id.restaurant_call);
callImage.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View w) {
// w.startAnimation(buttonClick);
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse("tel:"+str_call));
w.getContext().startActivity(intent);
}
});
TextView mapText = (TextView) v.findViewById(R.id.restaurant_map);
mapText.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View w) {
//w.startAnimation(buttonClick);
}
});
return v;
}
}
解决方法:
你必须检查两件事
>确保您的子类具有公共默认值(即零参数)构造函数.您不得修改此构造函数中的任何ParSEObject字段.
和
>在调用Parse.initialize()之前,在Application构造函数中调用ParSEObject.registerSubclass(YourClass.class).
Caused by: java.lang.ClassCastException: class java.lang.Double cannot be cast to class org.apach...
错误:
Caused by: java.lang.ClassCastException: class java.lang.Double cannot be cast to class org.apache.hadoop.io.WritableComparable (java.lang.Double is in module java.base of loader ''bootstrap''; org.apache.hadoop.io.WritableComparable is in unnamed module of loader ''app'')
原因:
在写Comparator时方法写错了,还导错了包
解决: 应该改为
导入这两个包
ClassCastException:java.math.BigInteger在连接MySQL时无法强制转换为java.lang.Long
连接到MySQL时,出现错误(见下文).
单击here以获取代码
我得到这个输出:
run:
Now connecting to databse...
java.sql.sqlException: java.lang.classCastException: java.math.BigInteger cannot be cast to java.lang.Long
java.sql.sqlException: java.lang.classCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.@R_301_5163@.jdbc.sqlError.createsqlException(sqlError.java:1074)
at com.@R_301_5163@.jdbc.sqlError.createsqlException(sqlError.java:988)
at com.@R_301_5163@.jdbc.sqlError.createsqlException(sqlError.java:974)
at com.@R_301_5163@.jdbc.sqlError.createsqlException(sqlError.java:919)
at com.@R_301_5163@.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1062)
at com.@R_301_5163@.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3556)
at com.@R_301_5163@.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2513)
at com.@R_301_5163@.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
at com.@R_301_5163@.jdbc.ConnectionImpl.301_5163@.jdbc.JDBC4Connection.java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.@R_301_5163@.jdbc.Util.handleNewInstance(Util.java:411)
at com.@R_301_5163@.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.@R_301_5163@.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at dbms_basic.Dbms_Basic.main(Dbms_Basic.java:28)
Caused by: java.lang.classCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.@R_301_5163@.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1007)
... 15 more
BUILD SUCCESSFUL (total time: 0 seconds)
我怎么解决这个问题?
现在出现的问题是谁在什么级别进行转换,当我们要求JDBC驱动程序建立连接时,它在场景之后做了很多工作,然后才真正给我们提供了正确的连接工作对象.
您的@R_301_5163@版本与您的mysql-connector.jar版本相结合似乎存在问题.尝试使用较新版本的@R_301_5163@ Connector / J(有关最新版本,请参阅https://dev.mysql.com/downloads/connector/j/),例如,如果您使用的是旧版本,请升级到5.1.47或8.0.12.
ClassCastException:不能在连接到MySQL时将java.math.BigInteger强制转换为java.lang.Long
如何解决ClassCastException:不能在连接到MySQL时将java.math.BigInteger强制转换为java.lang.Long?
您的错误明确指出无法进行强制转换,因为java.math.BigInteger类实例不是java.lang.Long类的实例。
现在出现了一个问题,即谁在哪个级别上进行强制转换,当我们要求JDBC驱动程序进行连接时,它实际上在幕后进行了大量工作,然后才真正给我们适当的连接工作对象。
您的MysqL版本与mysql-connector.jar版本组合似乎出现了问题。尝试使用更高版本的MysqL Connector / J(有关最新版本,请参见https://dev.mysql.com/downloads/connector/j/),例如,如果使用的是旧版本,请升级到5.1.47或8.0.12版。
解决方法
连接到MySQL时,出现错误(见下文)。
点击此处获取代码
我得到以下输出:
run:
Now connecting to databse...
java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
java.sql.SQLException: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1074)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:988)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:974)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:919)
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1062)
at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3556)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2513)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2283)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:822)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:404)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:317)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:247)
at dbms_basic.Dbms_Basic.main(Dbms_Basic.java:28)
Caused by: java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long
at com.mysql.jdbc.ConnectionImpl.buildCollationMapping(ConnectionImpl.java:1007)
... 15 more
BUILD SUCCESSFUL (total time: 0 seconds)
我该如何解决?
关于java.lang.ClassCastException:无法将oracle.sql.CLOB强制转换为oracle.sql.CLOB和oracle无法将null值的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于android – java.lang.ClassCastException:com.parse.ParseObject无法强制转换为、Caused by: java.lang.ClassCastException: class java.lang.Double cannot be cast to class org.apach...、ClassCastException:java.math.BigInteger在连接MySQL时无法强制转换为java.lang.Long、ClassCastException:不能在连接到MySQL时将java.math.BigInteger强制转换为java.lang.Long的相关知识,请在本站寻找。
本文标签: