0

$.ajax() メソッドと Json を dataType として使用して、jQuery ライブラリで AJAX 呼び出しを実行しようとしています。問題は、それを springmvc 2.5 のアプリに適用しようとすると発生します。適切なチュートリアルが見つかりません。それをSpring mvc 2.5に適用する方法ですが、3.0

乾杯

exception

javax.servlet.ServletException: サーブレット ディスパッチャーの Servlet.init() が例外 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) をスローしました100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) org.apache.coyote.http11.Http11Processor.process( Http11Processor.java:317) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) org.apache. tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)

根本的な原因

org.springframework.beans.factory.BeanCreationException: ServletContext リソース [/WEB-INF/dispatcher-servlet.xml] で定義された 'viewResolver' という名前の Bean の作成中にエラーが発生しました: Bean の初期化に失敗しました。ネストされた例外は org.springframework.beans.factory.BeanCreationException: ServletContext リソース [/WEB-INF/views.xml] で定義された名前 'jsonView' の Bean の作成中にエラーが発生しました: Bean のインスタンス化に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [org.springframework.web.servlet.view.json.JsonView]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480) org.

根本的な原因

org.springframework.beans.factory.BeanCreationException: ServletContext リソース [/WEB-INF/views.xml] で定義された名前 'jsonView' の Bean の作成中にエラーが発生しました: Bean のインスタンス化に失敗しました。ネストされた例外は org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [org.springframework.web.servlet.view.json.JsonView]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:883) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory です。 createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.

根本的な原因

org.springframework.beans.BeanInstantiationException: Bean クラスをインスタンス化できませんでした [org.springframework.web.servlet.view.json.JsonView]: コンストラクターが例外をスローしました。ネストされた例外は java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:115) org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy. java:61) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) org.springframework.beans. factory.support.AbstractAutowireCapableBeanFactory.

根本的な原因

java.lang.NoClassDefFoundError: org/apache/commons/beanutils/ConvertUtilsBean org.springframework.web.servlet.view.json.filter.SimplePropertyFilter.setUpBeanUtils(SimplePropertyFilter.java:31) org.springframework.web.servlet.view.json .filter.SimplePropertyFilter.(SimplePropertyFilter.java:27) org.springframework.web.servlet.view.json.JsonView.(JsonView.java:25) sun.reflect.NativeConstructorAccessorImpl.newInstance0(ネイティブメソッド) sun.reflect.NativeConstructorAccessorImpl. newInstance(NativeConstructorAccessorImpl.java:39) sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) java.lang.reflect.Constructor.newInstance(Constructor.java:513) org.springframework.beans.BeanUtils.instantiateClass(BeanUtils. java:100) org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:877) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:839) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:440) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(Nativeメソッド) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:261) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) org.springframework .beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) org.springframework.web.servlet.view.XmlViewResolver.initFactory(XmlViewResolver.java:138) org.springframework.web.servlet.view.XmlViewResolver.initApplicationContext(XmlViewResolver.java:89) org.springframework.context.support.ApplicationObjectSupport.initApplicationContext(ApplicationObjectSupport.java:119) org.springframework.web.context.support.WebApplicationObjectSupport.initApplicationContext(WebApplicationObjectSupport.java:69) org.springframework.context.support.ApplicationObjectSupport.setApplicationContext( ApplicationObjectSupport.java:73) org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:70) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:350) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1331) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:47 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) java.security.AccessController.doPrivileged(ネイティブメソッド) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java: 380) org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) org.springframework.beans.factory.support.AbstractBeanFactory. getBean(AbstractBeanFactory.java:185) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) org. springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728) org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380) org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:402) org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:316) org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:282) org.springframework. web.servlet.HttpServletBean.init(HttpServletBean.java:126) javax.servlet.GenericServlet.init(GenericServlet.java:160) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) org.apache. catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204) org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:182) org.apache.tomcat.util.net.JioEndpoint$SocketProcessor.run(JIoEndpoint. java:311) java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.ジャワ:662)ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) java.lang.Thread.run(Thread.java:662)

4

1 に答える 1

0

コントローラー メソッドに安静な URL で注釈を付け、コントローラー メソッドに @ResponseBody 注釈を追加する必要があります。

例:

@Controller
@RequestMapping(value = "/pets")
@ResponseBody
public Pet getPet(@PathVariable String petId, Model model) {    
    //..generate some Json
    // Add Json to the Response
    model.addAttribute("json", json);
}

次に、js で jquery を使用して URL への ajax 呼び出しを行います

$.ajax({
  type: 'POST',
  url: "/pets",
  data: data,
  success: function(data){
   alert(data.json); //alerts json object
},
  dataType: 'json'
});
于 2012-04-04T16:24:49.440 に答える