--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To view this discussion on the web visit https://groups.google.com/d/msg/caelum-vraptor/-/Wiy_ww6_TVYJ.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To view this discussion on the web visit https://groups.google.com/d/msg/caelum-vraptor/-/iKU3x0fXyd8J.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.
Voce particiona os dadozls de cada cliente em schemas separados? Nesse caso basta deixar as tabelas de localizacaoe com sinônimo público.
Sent from my Motorola Atrix™
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To view this discussion on the web visit https://groups.google.com/d/msg/caelum-vraptor/-/2hvNFr_PobUJ.
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To view this discussion on the web visit https://groups.google.com/d/msg/caelum-vraptor/-/e70qUbAQMmwJ.
Pessoal, bom dia.
Estou fazendo um upload de um arquivo CSV.
A leitura do arquivo este sendo executada e os dados gravados na base.
Porém, no submit do meu form (AJAX) não está recuperando o retorno do JSON de sucesso e no console da aplicação está mostrando a seguinte informação:
INFO [CommonsUploadMultipartInterceptor] Request contains multipart data. Try to parse with commons-upload.
Este é meu código:
@Post("/user/import/")
public void importUsers(final UploadedFile fileUpload) {
BufferedReader in = new BufferedReader(new InputStreamReader(fileUpload.getFile()));
try {
this.userImportCmp.readFile(new File(in.readLine()), userSession.getUser());
//result.use(ExtJSJson.class).from(new GOVMessage(localization.getMessage(GovSuccessKeyList.USER_UPDATE_SUCCESS.getKey()))).success(true).serialize();
result.use(ExtJSJson.class).from(EccoxUtil.EMPTY).success(true).serialize();
} catch (IOException e) {
e.printStackTrace();
result.use(ExtJSJson.class).from(EccoxUtil.EMPTY).success(false);
return;
} catch (SystemException e) {
e.printStackTrace();
result.use(ExtJSJson.class).from(EccoxUtil.EMPTY).success(false);
return;
}
}
E no ExtJS :
if (form.isValid()) {
form.submit({
method: 'POST',
url: APP_PATH + '/user/import/',
enctype: 'multipart/form-data',
waitTitle : message.processing.title,
waitMsg: 'Carregando o seu arquivo...',
success: function(frm, act){
console.log('success');
// No retorno quero abrir um janela de resumo da importação, mas não está chegando aqui
}
});
}
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
CommonsUploadMultipartInterceptor
Bom dia Carlos, tudo bem?
a) Está imprimindo somente a INFO.
b) O arquivo está chegando e os dados estão sendo persistidos.
c) Está com “multpart/form-data”.
d) Imaginei que o motivo de não retornar o ‘success’ do json por causa da informação que está sendo mostrada.
Obrigado.
Abs
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
--
Exato!
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
De: caelum-...@googlegroups.com [mailto:caelum-...@googlegroups.com]
Em nome de Lucas Cavalcanti
Enviada em: segunda-feira, 13 de fevereiro de 2012 13:19
Para: caelum-...@googlegroups.com
Assunto: Re: Upload
peraí, funcionou, mas não entrou no success?
Uncaught Ext.Error: You're trying to decode an invalid JSON String: <pre style="word-wrap: break-word; white-space: pre-wrap;">{"data": "","success": true}</pre>
Ok Lucas.
Vou ver.
Obrigado.
Abs
Pessoal bom dia,
A forma como o componente de upload do Ext trabalha, tive que colocar no meu controller o contenttype.
this.response.setContentType("text/html");
Desta forma, consegui obter o retorno de sucesso no retorno.
Obrigado a todos.
Abs
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
O bindInterceptor recebe objeto. Tentei pedir a injeção na mão mas o Guice não sabe como instanciar o DefaultValidator por não encontrar um construtor adequado (sem parâmetros).
UniversalAOPInterceptor interceptor = new UniversalAOPInterceptor();
bind(Validator.class).to(DefaultValidator.class);
requestInjection(interceptor);
e no UniversalAOPInterceptor:
@Inject private Validator validator;
Na verdade mesmo eu queria instanciar um @Component que está em @SessionScope que controla, em um sistema multi-empresa, qual empresa o usuário "conectou", ou seja, todos relatórios, cadastros, etc. filtrarão a empresa selecionada e caso a sessão expire, o validator forçaria o usuário a selecionar novamente a empresa que ele gostaria de operar no momento.
É mais fácil controlar isso interceptando os DAO's do que os Controllers, só que acabei perdendo a vantagem da praticidade de DI do VRaptor...
P.S. Desculpe não sabia que clicar em "Responder ao autor" seria enviado diretamente ao seu email sem criar uma postagem no grupo.
-- Rafael Dipold dip...@gmail.com
On 20/02/2012 13:48, Lucas Cavalcanti wrote:teoricamente sim,não lembro se no bindInterceptor ele recebe a classe ou a instância do interceptor. Se for a classe ele vai injetar direitinho. Se for o objeto,
Lucas,
É possível injetar um @Component ou um Validator nessa classe UniversalAOPInterceptor ? Se sim qual seria o procedimento?
Em segunda-feira, 13 de fevereiro de 2012 10h29min51s UTC-2, Lucas Cavalcanti escreveu:
Pessoal, boa tarde,
De uma lista serializada com ExtJSon, o primeiro item está com o valores de seus atributos correto:
controller: Object
controllerCode: "TESTE"
controllerKey: "TESTE"
id: 2
methods: Array[3]
0: Object
controller: Object
id: 1
methodCode: "Action 1"
methodKey: "Action 1"
A partir do segundo item no lugar dos valores dos atributos, aparece a referência do objeto:
controller: Object
@reference: "../../br.com.eccox.gov.model.Menu/controller"
Antes de serializar, listei os valores e eles existem.
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.
Tudo bem Murilo?
Vou converter .
Obrigado.
Abs.
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
Bom dia Lucas,
Copiei o arquivo para o meu projeto e começou a dar referencia circular em vários pontos que antes não ocorria.
Caused by: com.thoughtworks.xstream.core.TreeMarshaller$CircularReferenceException:
Tem como descobrir qual o objeto que está ocorrendo o erro?
Obrigado.
Abs.
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
Lucas creio que o problema seja o seguinte. Meu código é este:
result.use(GovExtJson.class)
.from(features)
.exclude("userInstall")
.exclude("installDate")
.exclude("batchControl")
.exclude("license")
.exclude("settings")
.exclude("resources")
.exclude("menus.feature")
.serialize();
O GovExtJson extende de DefaultExtJson.
Na lista de features cada item tem uma lista de menus. Preciso do menu, mas não do relacionamento com a feature e para não dar o erro de referencia circular, exclui, .exclude(“menus.feature”).
Na versão anterior estava funcionando mas nesta que copiei, parece que está desprezando o código acima.
Abs.
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
public ExtJSJson serialize() {serializer.from(wrapper).recursive().serialize();return this;}tire o recursive();
e na hora de dar os includes, comece com "data."
Lucas, bom dia.
Retirei o recursive. Não está dando erro mas também não serializa nada.
---> response
Object
getAllResponseHeaders: function (){return a}
getResponseHeader: function (l){return a[l.toLowerCase()]}
request: Object
requestId: 5
responseText: "{}"
responseXML: null
status: 200
statusText: "OK"
Não tem nada no responseText.
Obrigado.
Abs
José Maria de Oliveira
Eccox Technology
Tel.: + 55 11 4133-1969
Fax: + 55 11 4133-1960
Al. Rio Negro, 433, 4º andar, Edifício I
Alphaville, São Paulo, Brasil - CEP: 06454-904
"Seus negócios, disponíveis a qualquer momento, em qualquer lugar"
Lucas, inclui a linha include(“data”):
public DefaultExtJson(HttpServletResponse response, TypeNameExtractor extractor, ProxyInitializer initializer)
throws IOException {
xstream = new XStream(new JsonHierarchicalStreamDriver() {
@Override
public HierarchicalStreamWriter createWriter(Writer writer) {
return new JsonWriter(writer, new char[0], "", JsonWriter.DROP_ROOT_MODE) {
@Override
public void addAttribute(String key, String value) {
if (!key.equals("class")) {
super.addAttribute(key, value);
}
}
};
}
});
xstream.setMode(XStream.NO_REFERENCES);
xstream.aliasField("data", ExtJSWrapper.class, "list");
serializer = new XStreamSerializer(xstream, response.getWriter(), extractor, initializer);
include("data");
}
Gerou este erro:
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [br.com.eccox.gov.component.DefaultExtJson]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: Field path data doesn't exist
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:141)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:108)
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:280)
... 69 more
Caused by: java.lang.IllegalArgumentException: Field path data doesn't exist
at br.com.caelum.vraptor.serialization.xstream.XStreamSerializer.include(XStreamSerializer.java:221)
at br.com.eccox.gov.component.DefaultExtJson.include(DefaultExtJson.java:85)
at br.com.eccox.gov.component.DefaultExtJson.<init>(DefaultExtJson.java:70)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:126)
... 71 more
public ExtJSJson from(Object object) {wrapper = new ExtJSWrapper(object);serializer.from(wrapper).include("data");return this;}se não funcionar, coloca lá no método serialize mesmo:
public ExtJSJson serialize() {serializer.from(wrapper).include("data").serialize();return this;}
public ExtJSJson from(Object object) {
wrapper = new ExtJSWrapper(object);
serializer.from(object).include("data");
return this;
}
Ainda continua com o erro que não encontrou o “data”.
Obrigado