| 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?
|
 |
|
|