[Logo] Mentawai Forum - Mentawai Web Framework
  [Search] Search   [Recent Topics] Recent Topics   [Members]  Member Listing   [Groups] Back to home page 
[Register] Register / 
[Login] Login 
Messages posted by: ti_edson  XML
Profile for ti_edson -> Messages posted by ti_edson [17] Go to Page: 1, 2 Next 
Author Message
Olha ybadoo, suas palavras foram de grande avalia para mim!

Eu me inscrevi em Engenharia de Software (c/ ênfase em software livre)...

Mas sei sim sobre essa dificuldade de se manter os alunos motivados até o final do curto... Estou atualmente fazendo um curso para me atualizar em Ruby ( http://www.rubylearning.org/ - FORPC101-10C) e realmente, como depende só de vc (o aluno), uns 40% já estão fora das aulas... (Como a maioria dos sistemas de EAD, falta um pouco de "Sal/Tempeiro" na coisa)


Eu me inscrevi na de Lavras essa semana... Vou fazer Engenharia de Software.

ybadoo, me fale dos pontos positivos que vc achou sobre a forma do curso, sobre o material, professores e outras coisas que gostaria de falar, e também dos pontos negativos que encontrou.


Obrigado pelas dicas pessoal!
O único que encontrei até agora foi esse:
http://www.posead.com.br/v_cursos.php?id=355

(Não tenho nem idéia se presta ou não presta...)
Olá pessoal, gostaria de opiniões e indicações sobre cursos de Pós Graduação à distância. (moro em cidade do interior de SP, e aqui não tem opções, por isso necessito de um EAD.)

Pelo que fiquei sabendo de alguns colegas o Claretiano é referência em EAD...:
http://www.claretiano.edu.br/ead-pos-graduacao/mba-tecnologia-da-informacao-na-gestao-empresarial/

Outro que me indicaram foi (mas esse não conheço):
http://www.lfg.com.br/public_html/article.php?story=20081118212018948

Como são TANTOS cursos de Pós à distância, e tantas instituições envolvidas, a "coisa" complica...

O meu real interesse são em cursos de Engenharia de Software.
Gostaria da ajuda de vc's amigos para me dar essa luz...
Um grande abraço,
Edson
Pessoal, eu fiz exatamente como mostrados nos códigos, mas tive dois problemas...

1º) O meu Netbeans apontou erro aqui "public class NoticiaAction extends BaseAction implements Validatable {", falando que era para criar um médoto novo por conta do "Valitable".

2º) Quando compilo, gera o erro:
"com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException"
"sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)"


Alguém poderia me ajudar a colocar esse exemplo para funcionar?
Tem o Jar do código com MySQL disponível para download?

Olha, vim aqui para dar os meus sinceros parabéns ao saoj pelo excelente tutorial de IoC & DI que tem no link http://forum.mentaframework.org/posts/list/193.page

Muito bem detalhado/explicado. Valeu a paciência para escrever!

E vou fazer como o IceW0lf me orientou! "leia, releia, trileia"...

Valeu novamente a todos pela paciência.
Edson
Valeu IceW0lf & saoj!

Abração,
Edson

saoj wrote:

A Connection está sendo injetada no DAO via DI, por isso a não necessidade de pegar manualmente do Input.

Dá uma boa lida em IoC e em DI, tanto na documentação no site quanto no FAQ do Menta. É importante... 


OK! E obrigado pela ajuda de todos então!

E só mais uma pergunta (Para eu colocar de vez o "Resolvido" no tópico)...

E como, no exemplo do IceW0lf, ele pega a conexão para ser usado no restante do seu sistema? (Ele cria no "loadActions()" um "DI" e um "DAO" para cada objeto que usa a conexão, como no código "di("pessoaDAO", PessoaDAOImpl.class);"?)

[]'s
Olá IceWolf!

E aonde fica o " Connection conn = (Connection) input.getValue("conn"); " mostrado no tutorial, para usar o pool nas classes do website?
Esse método não seria o mais simples, já que é só recorrer a uma linha e "pimba", vai estar teoricamente tudo "pronto"?

[]'s
E aí pessoal, alguma idéia ou orientação de como usar o Pool de conexão de forma correta?

Abraços
Edson
Olá pessoal!

Eu andei olhando o código no site do Menta ( http://www.mentaframework.org/connfilter.jsp ), mas estou ainda tendo dúvidas de como usar o seu Pool de conexões...

---------------
Bem, vamos ver se entendi direito:
A pessoa tem que criar o "public void init(Context application)" e colocar os dados de conexão criando então o "connHandler"...

Depois adicionamos o filtro "addGlobalFilter(new ConnectionFilter(connHandler));" ao "loadAction()"...

E para usar o Pool, então é só usar a linha "Connection conn = (Connection) input.getValue("conn";" no seu código, criando o conn e usando ele com o Statement e sendo assim, o Resultset...
---------------

Vamos agora ao meu problema...
Estou obtendo a MSG
javax.servlet.ServletException: Exception while invoking action Login: null / java.lang.NullPointerException / null / java.lang.NullPointerException
org.mentawai.core.Controller.service(Controller.java:535)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:36

O que me dá a idéia de que o "conn" não está sendo criado, por isso o "PonteiroNulo"... Certo?

Eu então vou passar aqui o meu código: (Estou fazendo um esquema de Login com verificação de senha no Postgre, e como eu não sabia se o problema era de fato o uso do C3PO ou do DBCP, então criei os dois "modelos" de Pool para testes...)

Vamos lá:

import acao.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import org.apache.tomcat.dbcp.dbcp.BasicDataSource;
import org.mentawai.core.*;
import org.mentawai.core.Consequence;
import org.mentawai.db.C3P0ConnectionHandler;
import org.mentawai.db.ConnectionHandler;
import org.mentawai.db.DBCPConnectionHandler;
import org.mentawai.filter.*;

public class ApplicationManager extends org.mentawai.core.ApplicationManager {

private ConnectionHandler connHandler = null;

public void init(Context application) {

//C3PO

this.connHandler = new C3P0ConnectionHandler("org.postgresql.Driver",
"jdbc:postgresql://localhost:5432/celulbr_suporte",
"sysdba",
"masterkey";

C3P0ConnectionHandler c3p0 = (C3P0ConnectionHandler) connHandler;
ComboPooledDataSource pool = (ComboPooledDataSource) c3p0.getComboPooledDataSource();
pool.setMaxIdleTime(5);


/*BDCP
final String driver = "org.postgresql.Driver";
final String url = "jdbc:postgresql://localhost:5432/celulbr_suporte";
final String login = "sysdba";
final String pass = "masterkey";

this.connHandler = new DBCPConnectionHandler(driver,url,login,pass);
BasicDataSource ds = (BasicDataSource) ((DBCPConnectionHandler) connHandler).getBasicDataSource();
ds.setInitialSize(5);
ds.setMaxIdle(5);
ds.setMaxActive(20);
*/

}



public void loadActions() {

//setDebugMode(true, true);

addGlobalFilter(new ConnectionFilter(connHandler));

addGlobalFilter(new AuthenticationFilter());
addGlobalConsequence(AuthenticationFilter.LOGIN, new Redirect("/index.jsp");

ActionConfig ac = new ActionConfig("/Login", acLogin.class);
ac.addConsequence(acLogin.SUCCESS, new Redirect("/www/index.jsp");
ac.addConsequence(acLogin.ERROR, new Forward("/index.jsp");
addActionConfig(ac);

ac = new ActionConfig("/Logout", acLogout.class);
ac.addConsequence(acLogout.SUCCESS, new Redirect("/index.jsp");
addActionConfig(ac);
}
}

================================

package acao;

import banco.sql;
import java.sql.ResultSet;
import java.util.*;
import org.mentawai.core.*;
import org.mentawai.action.*;

public class acLogin extends BaseLoginAction {

public String execute() throws Exception{

int ID = 0;
String NOME = "Visitante";
String usuario = input.getStringValue("usuario";
String senha = input.getStringValue("senha";

if (usuario == null || usuario.trim().equals("") {
return ERROR;
}

if (senha == null || senha.trim().equals("") {
return ERROR;
}

//BUSCAR USUÁRIO E SENHA DO BANCO DE DADOS
sql x = new sql();

ResultSet rs = x.setLogin(usuario, senha);

while(rs.next())
{
ID = rs.getInt("id_pessoa";
NOME = rs.getString("nome";
}

if (ID > 0) {
setUserSession(ID);
output.setValue( NOME ,"nome";
return SUCCESS;
}
else
{
return ERROR;
}

}
}

================================

public ResultSet setLogin(String nome, String senha){
conexao con = new conexao();

String sql = "select id_pessoa, nome from pessoa where upper(login) = upper('"+nome+"') and senha = '"+senha+"' and ativo = 'SIM'";
try {
con.setSQL(1,sql);
} catch (Exception ex) {
ex.printStackTrace();
}

return con.getSQL();
}

================================

package banco;

import java.sql.*;
import org.mentawai.core.ActionException;
import org.mentawai.core.BaseAction;

public class conexao extends BaseAction {
private ResultSet rs = null;

public void setSQL(int tipo, String SQL) throws Exception{

Connection conn = (Connection) input.getValue("conn";

PreparedStatement stm = null;

try {

switch (tipo){
case 1:
{
stm = conn.prepareStatement(SQL);
rs = stm.executeQuery();
break;
}
case 2:
{
stm = conn.prepareStatement(SQL);
int resultado = stm.executeUpdate();
break;
}
}

} catch(SQLException e) {
throw new ActionException(e);
} finally {
try { if (rs != null) rs.close(); } catch(Exception e) { }
try { if (stm != null) stm.close(); } catch(Exception e) { }
}

}

public ResultSet getSQL(){
return rs;
}

================================

Pronto...
Espero que dê para eu ter passado o meu problema de forma clara...
Qualquer coisa, é só falar que eu passo mais detalhes, caso o pessoal da ajuda necessite...

Abraços a todos!
Edson
Olá pessoal!

Me envie os arquivos de exemplo (edson@celuladigital.com.br) que eu vou colocar no servidor aqui da empresa...

Se não esse post nunca vai acabar... (Galinheiro, sabe como é, né...)

Me mandem somente exemplos, sem "VideoLesson", pois o espaço/banda não é tanto assim, mas temos espaço ocioso, e me comprometo a manter os arquivos por um BOM tempo no ar (estou falando de vários anos)...

Podem enviar os exemplos à vontade que eu hospedo nesse domínio à vontade!

Já criei um diretório no servidor, ele pode ser visualizado em:
http://www.celuladigital.com.br/mentawai/
OU MELHOR AINDA:
http://mentawai.celulajava.com

Vou elaborar uma camada de apresentação e postar os links dos exemplos assim que for recebendo...

Gostaria de contribuir com o projeto,
Para a equipe desenvolvedora, Boaglio & Cia, posso elaborar um sistema de upload mais prático, sem ter que passar "pelas minhas mãos"... Assim o pessoal desenvolvedor tem mais autonomia... (Claro, o site vai ser usando Menta! )

Bem, essa é a minha proposta, o que acham?

Desde já abraço a todos,
Edson
Bem, só para complementar o post agora.

Caso você queira mudar a chamada da sua página de "mtw", ou seja, caso queira mudar, por algum motivo os links, para ficar "personalizado", tipo

http://www.seudominio.com/index.mtw
para
http://www.seudominio.com/index.qualquercoisa

mude em web.xml:

<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>*.qualquercoisa</url-pattern>
</servlet-mapping>

nas páginas JSP, para ficar padronizado:

<%@ taglib uri="mentawai" prefix="qualquercoisa" %>

e agora nas chamadas de todas as tags :
<qualquercoisa:out value="duvida"/>

Bem, é só isso... Só para complementar mais um pouco, para o pessoal que está iniciando agora (como eu!).

Falow pessoal.




Não sei por que cargas d'água eu não estáva conseguindo visualizar as tags!

Estou usando <%@ taglib uri="mentawai" prefix="mtw" %>
e no Web.xml
<taglib>
<taglib-uri>mentawai</taglib-uri>
<taglib-location>/WEB-INF/lib/mentawai.jar</taglib-location>
</taglib>

Mas eu reiniciei o Netbeans e deu certo agora! Vai saber!

Obrigado pela ajuda Velo!
Fiquei procurando em mil lugares para saber o motivo... E agora deu certo...

Valeu!
Olá pessoa, eu estou reparando que nos exemplos que pego e trabalho no Netbeans, as tags do Mentawai estão em negrito, e é habilitado o suporte à elas (JSP Completion)...

Mas no meu projeto que estou iniciando, não tem essa opção, ou melhor recurso...

O que devo fazer para habilitar esse recurso nos meus arquivos JSP?
 
Profile for ti_edson -> Messages posted by ti_edson [17] Go to Page: 1, 2 Next 
Go to:   
Powered by JForum 2.1.6 © JForum Team