1

我正在使用 Spring-Flex 1.5.2 和 Spring 3.1.2 开发一个项目,最近在我的项目中添加了一些 DAO 后,当我尝试填充我的一个组合时,我开始在 WebLogic 控制台上收到此错误:

[BlazeDS]org/springframework/core/convert/support/PropertyTypeDescriptor
java.lang.NoClassDefFoundError: org/springframework/core/convert/support/PropertyTypeDescriptor
    at org.springframework.flex.core.io.HibernateProxyConverter.convert(HibernateProxyConverter.java:48)
    at org.springframework.core.convert.support.ConversionUtils.invokeConverter(ConversionUtils.java:35)
    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:171)
    at org.springframework.flex.core.io.SpringPropertyProxy.getValue(SpringPropertyProxy.java:160)
    at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:601)
    at flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:532)
    at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:207)
    at flex.messaging.io.amf.Amf3Output.writeObjectArray(Amf3Output.java:854)
    at flex.messaging.io.amf.Amf3Output.writeAMFArray(Amf3Output.java:445)
    at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:193)
    at flex.messaging.io.ArrayCollection.writeExternal(ArrayCollection.java:97)
    at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:594)
    at flex.messaging.io.amf.Amf3Output.writeArrayCollection(Amf3Output.java:476)
    at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:189)
    at flex.messaging.messages.AbstractMessage.writeExternalBody(AbstractMessage.java:705)
    at flex.messaging.messages.AbstractMessage.writeExternal(AbstractMessage.java:435)
    at flex.messaging.messages.AsyncMessage.writeExternal(AsyncMessage.java:140)
    at flex.messaging.messages.AcknowledgeMessage.writeExternal(AcknowledgeMessage.java:94)
    at flex.messaging.messages.AcknowledgeMessageExt.writeExternal(AcknowledgeMessageExt.java:55)
    at flex.messaging.io.amf.Amf3Output.writePropertyProxy(Amf3Output.java:594)
    at flex.messaging.io.amf.Amf3Output.writeCustomObject(Amf3Output.java:532)
    at flex.messaging.io.amf.Amf3Output.writeObject(Amf3Output.java:112)
    at flex.messaging.io.amf.Amf0Output.writeObject(Amf0Output.java:206)
    at flex.messaging.io.amf.AmfMessageSerializer.writeObject(AmfMessageSerializer.java:196)
    at flex.messaging.io.amf.AmfMessageSerializer.writeBody(AmfMessageSerializer.java:186)
    at flex.messaging.io.amf.AmfMessageSerializer.writeMessage(AmfMessageSerializer.java:142)
    at flex.messaging.endpoints.amf.SerializationFilter.invoke(SerializationFilter.java:198)
    at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.java:291)
    at flex.messaging.endpoints.AMFEndpoint$$EnhancerByCGLIB$$25364767.service(<generated>)
    at org.springframework.flex.servlet.MessageBrokerHandlerAdapter.handle(MessageBrokerHandlerAdapter.java:109)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
    at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
    at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
    at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:147)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
    at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
    at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
    at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3496)
    at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
    at weblogic.security.service.SecurityManager.runAs(Unknown Source)
    at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2180)
    at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2086)
    at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1406)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
Caused by: java.lang.ClassNotFoundException: org.springframework.core.convert.support.PropertyTypeDescriptor
    at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:283)
    at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:256)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:54)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:176)
    at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:35)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    ... 57 more

谷歌在这方面让我失望了......所以非常感谢任何帮助。

我已经用 @RemotingDestination 注释了我的服务,并在我的 Mxml 中创建了远程对象,如下所示:

<s:RemoteObject id="marketSegment" destination="marketSegmentServiceImpl" endpoint="http://localhost:7001/scpi/messageBroker/amf"></s:RemoteObject>

然后我在我的组合框中添加这个:

dataProvider="{marketSegment.findAllCatalogs.lastResult}"

这在我的创作完成:

private function init():void{
    marketSegment.findAllCatalogs();
    biotech.findAllCatalogs();
}

这用于获取仅具有原始类型属性的对象,但在尝试获取具有复杂类型属性的任何对象时失败并出现上述错误。

4

1 回答 1

1

看起来有些版本不兼容。

这个类org.springframework.core.convert.support.PropertyTypeDescriptor在 Spring 3.1 中被删除了!

看看包含org.springframework.flex.core.io.HibernateProxyConverter. 也许您在 pom.xml 中找到了所需的 spring-core 版本。

于 2012-11-01T14:55:43.097 回答