Olá Pessoal, estou apanhando demais para conseguir fazer funcionar o json com o struts 2;
Copiei o arquivo q ven com o struts 2: struts2-json-plugin-2.1.8.1.jar para meu diretório lib do web-inf;
depois configurei na minha action para que ela retorno um tipo json:
public class MostraNotaEntradaAjaxAction {
private int id_entrada;
private Ven_notaentrada vne;
@Action( value="mostraNotaEntradaAjax", results={
@Result(name="ok", type="json", params={"status","200"})
})
public String execute() {
try
{
System.out.println("mostra connection ajax");
Connection conn = new ConnectionFactory().getConnection();
vne = new Ven_notaentradaDAO(conn).getNotaById(id_entrada);
conn.close();
}catch (SQLException e) {
throw new RuntimeException(e);
}
return "{ id : "+ vne.getId_entrada().toString() +", desc : '"+vne.getDescricao()+"' }";
}
public Ven_notaentrada getVne() {
System.out.println("get vne ajax");
return vne;
}
public void setId_entrada(Integer idEntrada) {
System.out.println("set id_entrada ajax"+ ((Integer)id_entrada).toString());
id_entrada = idEntrada;
}
}
Mas qdo eu coloco type como json, eu mando restartar o tomcat daí ja vem o erro:
[code]Unable to load configuration. - [unknown location]
Caused by: The Result type [json] which is defined in the Result annotation on the class [class gsa.action.MostraNotaEntradaAjaxAction] or determined by the file extension or is the default result type for the PackageConfig of the action, could not be found as a result-type defined for the Struts/XWork package [gsa.action#convention-default#] - [unknown location]
[/code]
Pessoal, com certeza alguém já deve ter passado por isso, por favor, preciso de um help.
Contudo qdo chamo o ajax vem o erro abaixo. Eu fiz o debut e vi a chamada chega na action, mas o problema é na hora do retorno
q ele se perde. o que será q estou errando?
No result defined for action gsa.action.MostraNotaEntradaAjaxAction and result { id : 118, desc : 'resumo 0' }
O retorno de seu método mapeado na Action deve ser um “result name”, no seu caso, “ok”.
Esse valor “{ id : “+ vne.getId_entrada().toString() +”, desc : '”+vne.getDescricao()+"’ }"; deveria ter sido atribuido a uma variável e disponibilizada via get público para o JSP.
O retorno de seu método mapeado na Action deve ser um “result name”, no seu caso, “ok”.
Esse valor “{ id : “+ vne.getId_entrada().toString() +”, desc : '”+vne.getDescricao()+"’ }"; deveria ter sido atribuido a uma variável e disponibilizada via get público para o JSP.
[/quote]
Olá jyoshiriro!
Puxa funcionou perfeitamente. Era melhor do que eu esperava, ele já me envia a classe inteira, daí só precisei pegar os campos:
Muito obrigado pela paciência e pelo apoio!
Para ajudar a quem precisar vou postar o código completo:
Estou tentando fazer a mesma coisa e o meu esta dando uma messagem de erro.
Sou iniciante em java.
muito obrigrado
10:13:56 ERROR [Dispatcher] Dispatcher initialization failed
Unable to load configuration. - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: The package name 'json-default' at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59 is already been used by another package at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/jsonplugin-0.34.jar!/struts-plugin.xml:8:59 - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.addPackageConfig(DefaultConfiguration.java:113)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:475)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 22 more
14/12/2010 10:13:56 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter struts2
Unable to load configuration. - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: Unable to load configuration. - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
... 20 more
Caused by: The package name 'json-default' at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59 is already been used by another package at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/jsonplugin-0.34.jar!/struts-plugin.xml:8:59 - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.addPackageConfig(DefaultConfiguration.java:113)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:475)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 22 more
Cara, faz um tempinho que não mexo com o struts, estou mexendo com flex e java, mas vamos ver se consigo te ajudar. Cara posta para gente
sua classe modelo, sua action e jsp + java script para vermos se conseguimos encontrar o problema!
Valeu!
[quote=claudiano]Estou tentando fazer a mesma coisa e o meu esta dando uma messagem de erro.
Sou iniciante em java.
muito obrigrado
10:13:56 ERROR [Dispatcher] Dispatcher initialization failed
Unable to load configuration. - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: The package name 'json-default' at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59 is already been used by another package at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/jsonplugin-0.34.jar!/struts-plugin.xml:8:59 - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.addPackageConfig(DefaultConfiguration.java:113)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:475)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 22 more
14/12/2010 10:13:56 org.apache.catalina.core.StandardContext filterStart
GRAVE: Exception starting filter struts2
Unable to load configuration. - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4001)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4651)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
at org.apache.catalina.core.StandardService.start(StandardService.java:519)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: Unable to load configuration. - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
... 20 more
Caused by: The package name 'json-default' at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59 is already been used by another package at location package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/jsonplugin-0.34.jar!/struts-plugin.xml:8:59 - package - jar:file:/D:/claudiano/inforlocwebnovo/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/InforLoc/WEB-INF/lib/struts2-json-plugin-2.1.8.1.jar!/struts-plugin.xml:8:59
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.addPackageConfig(DefaultConfiguration.java:113)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:475)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:264)
at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:111)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:193)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 22 more