`
colorfire
  • 浏览: 33861 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

OSG框架下使用JAXB出现ClassCastException

阅读更多
以下是实现代码:
JAXBContext jc = JAXBContext.newInstance("cn.capitek.stat.fuse.predeal.config.ftp");
	        Unmarshaller u = jc.createUnmarshaller();
	        InputStream in = CCommonFunc.getInputStream("META-INF/conf-test/ftp.xml");
	        JAXBElement<?> reportconfigElement = (JAXBElement<?>)u.unmarshal(in);
	        in.close();
	        
	        //测试对象类型
	        Object obj = reportconfigElement.getValue();
	        System.out.println(obj.getClass());
	        System.out.println(obj.equals(new FtpConfigType()));
	        
	        List<FtpType> ftpArray=((FtpConfigType)reportconfigElement.getValue()).getFtp();
	        System.out.println("============="+ftpArray.size());


使用spring osgi test进行单元测试

引用

java.lang.ClassCastException: cn.capitek.stat.fuse.predeal.config.ftp.FtpConfigType
at cn.capitek.stat.fuse.predeal.service.collector.impl.FtpFileCollectorsManager.getFtpList(FtpFileCollectorsManager.java:156)
at cn.capitek.stat.fuse.predeal.service.collector.impl.FtpFileCollectorsManager.startCollectors(FtpFileCollectorsManager.java:95)
at test.cn.capitek.stat.fuse.predeal.service.collector.impl.TestFtpFileCollectorsManager.testGetFile(TestFtpFileCollectorsManager.java:38)
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 junit.framework.TestCase.runTest(TestCase.java:164)
at org.springframework.osgi.test.AbstractOsgiTests.osgiRunTest(AbstractOsgiTests.java:553)
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.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:193)
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:178)
at org.springframework.osgi.test.internal.support.OsgiJUnitTestAdapter.osgiRunTest(OsgiJUnitTestAdapter.java:76)
at org.springframework.osgi.test.internal.support.OsgiJUnitService$1.protect(OsgiJUnitService.java:101)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at org.springframework.osgi.test.internal.support.OsgiJUnitService.runTest(OsgiJUnitService.java:98)
at org.springframework.osgi.test.internal.support.OsgiJUnitService.executeTest(OsgiJUnitService.java:71)
at org.springframework.osgi.test.internal.support.OsgiJUnitService.runTest(OsgiJUnitService.java:45)
at org.springframework.osgi.test.JUnitTestActivator.executeTest(JUnitTestActivator.java:73)
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.springframework.osgi.test.AbstractOsgiTests.invokeOSGiTestExecution(AbstractOsgiTests.java:397)
at org.springframework.osgi.test.AbstractOsgiTests.runBare(AbstractOsgiTests.java:206)
at org.springframework.osgi.test.AbstractOsgiTests$1.protect(AbstractOsgiTests.java:184)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at org.springframework.osgi.test.AbstractOsgiTests.run(AbstractOsgiTests.java:181)
at junit.framework.TestSuite.runTest(TestSuite.java:230)
at junit.framework.TestSuite.run(TestSuite.java:225)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:130)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)





直接junit测试该段代码没有问题,个人猜测又是可恶的classloader导致的。
分享到:
评论

相关推荐

    OSG基本MFc框架

    总之,"OSG基本MFc框架"为初学者提供了一个学习OSG与MFC结合开发的起点,通过这个框架,你可以掌握如何在Windows环境下构建3D图形应用程序,并逐步探索更高级的3D图形编程技巧。同时,不断实践和学习,可以提升在3D...

    osgEarth数据组织.zip_osg_osg 组织_osgearth_osgearth数据

    1. 创建OSGEarth框架:首先,我们需要创建一个OSGEarth::SceneNode,并将其附加到OSG的场景图中。这个节点包含了地球模型和其他所有数据层。 2. 加载地形数据:通过OSGEarth::TerrainLayer,我们可以指定DEM文件或...

    osg3.7.0、osgearth3.4和osgQt和第三方库

    osgQt是osg的一个扩展,它将osg的功能与Qt框架集成,提供了一种在Qt应用中轻松使用3D图形的方式。Qt是一个跨平台的应用程序开发框架,广泛用于创建用户界面。osgQt允许开发者在Qt环境中无缝地嵌入复杂的3D场景,使得...

    OsgEarth2.8 使用高程和影像

    ### OsgEarth2.8 在vs2013 Qt5.4环境下加载谷歌影像与高程数据 #### 一、OsgEarth2.8简介 OsgEarth是基于OpenSceneGraph(OSG)的一个插件集,用于创建地理空间3D应用程序。OsgEarth为开发者提供了丰富的API来处理...

    OSG 三维引擎架构

    OSG 三维引擎架构 OSG 三维引擎架构是 OpenSceneGraph(OSG)引擎的核心组件,负责处理三维图形渲染、场景管理、数据加载和渲染流程管理。osg架构总体上可以分为五个部分:场景相关、几何图形、渲染相关、数据加载...

    使用osg获取模型的世界坐标下的包围盒

    "使用osg获取模型的世界坐标下的包围盒"这一技术正是为了满足这样的需求。osg,全称OpenSceneGraph,是一个强大的开源3D图形库,广泛应用于游戏开发、科学可视化等领域。它提供了一种高效的方法来计算3D模型的包围盒...

    Osg中能够使用3Dmax的动画FBX文件库

    在OpenSceneGraph (Osg) 中使用3Dmax的FBX(Filmbox)文件库是一项重要的功能,因为FBX格式是3D建模和动画领域广泛使用的交换格式,它允许跨多个软件平台导入和导出复杂的3D模型和动画数据。在本篇中,我们将深入...

    可配合OSG3.4.0与osgEarth2.8使用的64位geos3.5.1库(VS2013编译)

    其中,OpenSceneGraph(OSG)是一个强大的3D图形应用程序开发库,而osgEarth则是基于OSG构建的一个开源地球可视化框架。本文将详细讨论标题和描述中提及的知识点,包括geos3.5.1、OSG3.4.0、osgEarth2.8以及它们与...

    osg回调函数的使用

    在VS2010和OSG 3.2的环境下,理解并正确使用回调函数对于任何希望深入学习OSG的初学者来说都至关重要。 一、回调函数的概念 回调函数,顾名思义,是“回调”到你的代码中的函数。在OSG中,当某些事件如鼠标点击、...

    OSG3.7.0使用VS2019 32位 + qt5.15.2编译

    总之,这个项目展示了如何在32位环境下使用最新的OSG版本与Qt进行协同工作,特别是在涉及到图形用户界面和高性能3D渲染时。通过这种方式,开发者可以利用这两个强大工具的优点,创建出功能丰富的3D应用。

    OSG核心源码解析_osg_OSG核心源码解析_

    1. **数据结构与设计模式**:OSG中大量使用了面向对象的设计模式,如工厂模式、单例模式、观察者模式等。书中会详细介绍这些模式在OSG中的应用,以及如何通过这些模式实现高效的数据管理和对象交互。 2. **图形渲染...

    osgearth在qt Creater下的工程,qt5.12,编译器msvc2017,osg3.4 osgearth2.8

    本文将详细讲解如何在Qt Creator环境下使用osgEarth创建一个基于Qt的三维数字地球应用。首先,我们关注的核心技术包括osg(OpenSceneGraph)和osgEarth,以及与之结合的Qt库。osg是一个高性能的3D图形库,而osgEarth...

    6_OSG_OSGearth学习资源.zip

    接下来是《最长的一帧.pdf》,这本书可能深入探讨了3D图形编程的各个方面,特别是在OSG框架下。书名暗示了它可能会涉及渲染优化,因为“最长的一帧”通常指的是影响游戏或应用性能的关键步骤。书中可能包含如何减少...

    可配合OSG3.4.0与osgEarth2.8使用的64位gdal2.2.2库(VS2013编译)

    总之,这个压缩包提供的GDAL2.2.2库对于那些使用OSG3.4.0和osgEarth2.8的开发者来说,是一个重要的组件,它使得在Windows平台下开发3D地理应用变得更加便捷。通过GDAL的接口处理地理数据,再借助OSGEarth在3D场景中...

    点云数据读取例子 使用osg 附带点云数据 可直接运行

    本例子将详细讲解如何使用osg来读取并显示点云数据。 1. **OpenSceneGraph介绍** OpenSceneGraph是一个基于OpenGL的高性能3D图形库,它提供了丰富的图形功能,包括几何建模、纹理映射、光照处理、动画系统等。osg...

    OSG程序设计教程.zip_OSG程序设计_osg 地_osg例子_osg回调_osg的一些例子代码

    OSG的强大之处在于它提供了一个高效、灵活的框架,可以用来创建复杂的3D场景,并且支持高级渲染技术。 1. **osg基础** OSG的核心是场景图(Scene Graph),这是一种数据结构,用于组织3D对象和它们的属性。场景图...

    mingw编译osg插件

    在图形渲染领域,OpenSceneGraph(简称OSG)是一款强大的跨平台图形框架,它支持多种数据格式和丰富的渲染特性,广泛应用于游戏开发、虚拟现实、科学可视化等多个领域。然而,作为OSG初学者,在使用过程中可能会遇到...

    Cmake编译OsgEarth3.5的库

    本篇文章将详细介绍如何使用 CMake 编译 OSGEarth 3.5,这是一个基于 OpenSceneGraph(OSG)的开源地理信息系统库。 首先,我们需要理解 OSGEarth 的核心功能。OSGEarth 是 OSG 的扩展,提供了与地理位置数据交互的...

    OSG3.6.3+osgEarth2.10.1(VS2015/VS2017/VS2019-x64)开发库

    然后重新基于所需版本的Qt及osg库编译出osgQt库,包内包含 头文件/lib库/DLL动态链接库,编译器使用的是vs2017,这是 x64 版本的开发库,由于VS2015/VS2017/VS2019是二进制兼容的,所以理论上在三个环境下都可以使用...

Global site tag (gtag.js) - Google Analytics