Abandonado
Este blog mudou para: http://gregui-shigunov.blogspot.com/
Executando programa externo e recuperando a saída (Java)
import java.io.*;
public class Executar {
public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec (“dir c:“);
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
}
catch (Exception err) {
err.printStackTrace();
}
}
}
Exemplo de envio de e-email com Java
import java.io.IOException;
import java.io.PrintStream;
import sun.net.smtp.SmtpClient;
/**
* Classe para envio de email
*/
/**
* @author gregui
*
*/
public class Email {
/**
* Construtora
*
*/
public Email() {
}
public boolean enviar() {
String to = “maurivanluiz@gmail.com,” +
” kleber.martins@gmail.com“;
String from = “gregui@gmail.com“;
try {
SmtpClient client = new SmtpClient(“mail.xxxxx.com.br“); //servidor smtp
client.from(from);
client.to(to);
PrintStream msg = client.startMessage();
msg.println(“to:” + to);
msg.println(“from:” + from);
msg.println (“Subject:Exemplo de Envio de e-mail”);
msg.print(“\r\n”);
msg.println(“Testando de email http://gregui.wordpress.com”);
client.closeServer();
} catch (IOException e) {
System.out.println(e.getMessage());
return false;
}
return true;
}
/**
* Exemplo de uso
* @param args
*/
public static void main(String args[]) {
Email mail = new Email();
mail.enviar();
}
}
Instanciando uma classe dinamicamente (JAVA)
Aqui vai exemplo de como instanciar um objeto dinamicamente!
String classeNome = “NomeDaClasse”;
Object[] contrutoraParam = new Object[0]; //parametros da contrutora
Object objeto = Class.forName (classeNome).getConstructors()[0].newInstance(contrutoraParam);
NomeDaClasse teste = (NomeDaClasse) objeto; //Casting
System.out.println(teste.toString());
Qualquer dúvida! estou a disposição!
Duvida! Qual distribuição do Linux devo instalar!?
Pessoal! andei meio desatualizado com os lançamentos do linux! A última distribuição do linux em que trabalhei era o Conectiva 8. Dei uma pesquisada e vi que tem uma porrada de versões e distribuições!
Agora gostaria da opinião dos leitores do blog, para decidir em que versão partir.
Comentem e dêem opiniões sobre vantagens e desvantagens.
Não só para mim, mas para os leitores do blog.
Ahhh e obrigado pelo comentário!
Programação orientada a Objetos – Boas práticas de programação (1)
Tenho participações em fóruns como JavaFree e PortalJava. E notei que muitos programadores se “batem” com orientação a objetos, mesmo utilizando uma linguagem Orientada a Objetos como Java, Flex, Php.
Tentarei trazer dicas de orientação a objeto e boas práticas de programação, utilizando exemplos simples para o fácil entendimento. No momento estou bem ocupado, então posso demorar para postar coisas novas!
Então…
Notem este código:
public class Motor {
}
public class Carro {
private Motor motor = new Motor();
//construtora
public Carro(Motor motor) {
this.motor = motor;
}
}
Um exemplo muito simples, com dois objeto (Carro e Motor);
Agora, notem…
- A contrutora da classe “Carro”, informa (obriga) que um “Carro” tenha um “Motor”.
- Então antes de instanciar um carro, eu preciso instanciar um motor (motor pode ser “null”, nulo).
- Quando eu contruir um carro, eu incluo o motor no carro, mas notem a linha 2:
private Motor motor = new Motor();
- Se a construtora de “Carro” me obriga ter um “Motor”, por que diabo ela já tem um motor construído?
É mais ou menos como: “Vou contruir um carro 2.0, mas o carro já possuí um motor 1.0, então terei que tirar o motor 1.0, e substituir pelo 2.0″
(No mundo real isso é bom, já que eu teria um motor sobrando, mas … na programação há disperdício de processamento e memória para criar o motor 1.0, já que foi contruído e não foi utilizado)
- Agora você deve se perguntar, grande coisa… Não vai fazer muita diferença.
- Para um exemplo simples como esse sim, mas imagine um sistema complexo, com classe gigantes e complexas
Agora olhem a classe abaixo:
public class Carro {
private Motor motor = null;
//construtora
public Carro(Motor motor) {
this.motor = motor;
}
}
No carro eu “declarei” mas não “instanciei” o Motor.
É mais ou menos como: “tenho um carro, agora só falta o motor (reservei espaço para o Motor)”
Uma outra Boa Prática de Programação (BPP) é, sempre informar o valor da variável ao declará-la.
Como no exemplo abaixo
Exemplo de utilização:
Motor motor_1; //não recomendado
Motor motor_2 = null; //OK
Motor motor_3 = new Motor(); //OK
motor_1 = new Motor();
motor_2 = new Motor();
Carro corsa = new Carro(motor_1);
Carro corsa_sedan = new Carro(motor_2);
Até a próxima
java.io.IOException: No serializer found for class pacote.Classe in registry org.apache.axis.encoding. TypeMappingDelegate@
Eai pessoal!!!!
Então! hoje eu estvaa criando um WebServer.
E me debati com o sequinte erro ao testar.
AxisFault
faultCode: {http://schemas.xmlsoap.org/soap/envelope/}Server.userException
faultSubcode:
faultString: java.io.IOException: No serializer found for class gregui.ValorBean in registry org.apache.axis.encoding.TypeMappingDelegate@17574b9
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:java.io.IOException: No serializer found for class gregui.ValorBean in registry org.apache.axis.encoding.TypeMappingDelegate@17574b9
at org.apache.axis.encoding.SerializationContext.serializeActual(SerializationContext.java:1507)
at org.apache.axis.encoding.SerializationContext.serialize(SerializationContext.java:980)
at org.apache.axis.encoding.SerializationContext.outputMultiRefs(SerializationContext.java:1055)
at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:145)
HTTP Error: no data present after HTTP headers (SOAP + PHP)
Opa!
estava eu acessando um web service e precisei passar um objeto por webService.
E perdi algumas hora pra resolter um problema! Eu não consiguia enviar (em PHP, usando NuSoap) um objeto para o webServices!
Tentei de várias formas até que consegui!
então lá vai:
aqui um exemplo que Request que deveria ser feito para se inserir o objeto
POST /SafeVenue/WebInterface.asmx HTTP/1.1
Host: servidor.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://192.1.2.3/SafeVenue/InsertRedListEntry"
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<InsertRedListEntry xmlns="http://192.1.2.3/SafeVenue/">
<redListEntry>
<TicketID>long</TicketID>
<FailureReasonID>int</FailureReasonID>
</redListEntry>
</InsertRedListEntry>
</soap:Body>
</soap:Envelope>
Para chamar enviar o objeto, no PHP, fiz assim:
<?php
/**
* Enviando Objeto via WebService com NuSoap
*
* @author Gregui Shigunov
* @since 03/10/2007
*/
require_once('nusoap/nusoap.php');
$wsdl = "http://servidor/SafeVenue/WebInterface.asmx?WSDL";
$client = new soapclient($wsdl, true);
$client->soap_defencoding = 'UTF-8';
$client->useHTTPPersistentConnection();
$err = $client->getError();
if ($err) {
echo '<pre>PROBLEMAS AO ACESSAR O WEBSERVICE ' . $err . '</pre><br>';
}
$objeto = '<InsertRedListEntry xmlns="http://192.1.2.3/SafeVenue/">
<redListEntry>
<TicketID>12345</TicketID>
<FailureReasonID>1</FailureReasonID>
</redListEntry>
</InsertRedListEntry>';
//detalhe em vermelho, sem isso não funciona
$result = $client->call('InsertRedListEntry', $objeto, "http://192.1.2.3/SafeVenue/");
echo "Resultado------------------------<br>";
print_r($result);
echo "------------------------";
if ($client->fault) {
echo '<h2>Fault</h2><pre>'; print_r($result);
echo '</pre>';
} else {
$err = $client->getError();
if ($err) {
echo '<h2>(Autenticacao)</h2><pre>' . $err . '</pre>';
}
}
echo '<br><br><h2>Request</h2><pre>' . htmlspecialchars($client->request, ENT_QUOTES) . '</pre>';
echo '<h2>Response</h2><pre>' . htmlspecialchars($client->response, ENT_QUOTES) . '</pre>';
echo '<h2>Debug</h2><pre>' . htmlspecialchars($client->debug_str, ENT_QUOTES) . '</pre>';
?>
Qualquer coisa é só dar um toque pessoal!
Governo brasileiro compra dois supercomputadores …
Também quero um desse pra trabalhar em casa…
Governo compra dois supercomputadores da Bull, fornecedora francesa de infra-estrutura de TI.
As duas máquinas farão parte do Sinapad (Sistema Nacional de Processamento de Alto Desempenho), que terá um total de oito supercomputadores espalhados no Brasil interligados em rede.
Os computadores ficarão na Universidade Federal de Pernambuco e na Universidade Federal do Ceará e entrarão em funcionamento até o final do ano.
Ambos terão capacidade de processamento de 6,1 teraflops – ou trilhões de operações por segundo. Cada um deles é um cluster de 72 servidores Bull NovaScale com dois processadores Xeon quad-core, num total de 576 núcleos de processamento. Cada supercomputador terá 45 terabytes de armazenamento e 1 TB de memória RAM. E o sistema operacional, será o Linux, é claro.
“São os maiores computadores que teremos fora da França”, afirma Didier Lamouche, presidente mundial da Bull, que está em visita no Brasil esta semana. O supercomputador de maior desempenho da empresa francesa é uma máquina de 100 teraflops que fica num centro de pesquisa científica no sul de Paris.
Recentemente, a Bull trocou os processadores de sua linha de supercomputadores. De acordo com Alberto Araújo, presidente da Bull no Brasil, a opção pelo Xeon em vez do Itanium, série em que a empresa participa do desenvolvimento junto à Intel, deu-se pela maior capacidade de processamento do Xeon.
“O custo de operações de cálculo no Itanium é maior que no Xeon. Optamos por oferecer servidores com Itanium apenas para banco de dados”, afirma Araújo.
Além da UFPE e da UFC, o Sinapad conta com mais seis computadores na UFRGS, UFRJ, UFMG, Unicamp, INPE e Laboratório Nacional de Computação Científica, ligado ao Ministério da Ciência e Técnologia.
