Académique Documents
Professionnel Documents
Culture Documents
Buscar
...
Inicio
Lineamientos
Blogs
Foros de Discusin
Encuestas
Usuarios
Tips
Inicio de sesin
Nombre de usuario: *
Contrasea: *
Iniciar sesin
Crear cuenta nueva
Solicitar nueva contrasea
Hola a todos anteriorme les pedi ayuda para que me ayudaran a resolver un problemilla que tuve con
un web service que estaba desarrollando pero no recibi respuesta.
Navegacin
Blogs
Categorias
Contenido
Bueno ahora les pido si alguno de ustedes tiene un algun webservice hecho que utilice en conjunto
una base de datos ps me hago el favor de decirme como lo hicieron? y detalles de las herramientas
que utilizaron sin mas quedo pendiente de sus comentarios
Actualizado el 05 julio 2010
Foros de Discusin
Encuestas
Hola a todos, primero que nada espero que estn bien, no supe si este es el lugar correcto
Tips
para poner lo que les mostrare pero espero les pueda servir y a la vez me ayuden con un
Usuarios
problema que tengo, voy a tratar de ser explicito para que lo puedan seguir.
Envos recientes
Quiero que sepan no soy el autor original del ejemplo que les voy a poner, pero creo que lo voy a
pdfcrowd.com
complementar
La fuente de la informacin la pueden consultar AQUI
Temas nuevos
Propsito:
Configuracin de Glassfish
Crear un web service y consumirlo
Error
org.hibernate.LazyInitializa
Entorno:
Windows XP, Java SE 6, MySql 5.1, Axis2 1.5, Tomcat 6, IDE --usen el que quieran casi para
Obtener datos de un
todos es similar--
TextField
more
Instalacion:
Java: (yo creo que desde 1.5 esta bien)
En lnea
En este momento hay 0
usuarios y 54 invitados en
lnea.
Yo baje la versin 1.6 con el instalador de Windows y todo lo que hice fue darle siguiente
siguiente etc
Reside en C:\Archivos de programa\Java
Comentarios recientes
re: Comoenviar un entero
Axis2: yo baje los binarios uno que es un .war y otro donde viene todo (/lib /conf etc.)
Los baje de AQUI
Baje el zip del que dice (1) Standard binary distribution y el zip que dice (2)WAR Web Archive
Distribution
Descomprim ambos (1) lo puse en C:\Archivos de programa\ Y debera quedarles C:\Archivos de
no le veo problema
programa\axis2-1.5.1-bin\axis2-1.5.1
pdfcrowd.com
MySql: yo instale MySql Server Community Edition baje la versin 1.5 con instalador de Windows
Como un consejo si piensan utilizar la aplicacin como cliente servidor, o no se ,que no sea solo
me marca un error
local,
hace 1 da 13 horas
class Una {
Otra o;
hace 1 da 15 horas
Apache es el servidor http
hace 2 das 16 horas
Encuesta
Qu lenguaje alternativo
para la JVM te llama ms la
atencin?:
Groovy
Scala
Clojure
JRuby
Jython
Otro... (menciona cul)
Votar
Contenido popular
Y despues en http://localhost:8080/axis2
pdfcrowd.com
Contenido popular
Hoy:
Problema para comparar
valores null, vacio o "" de
un h:inputtext
Desplegando una aplicacin
de Spring Boot en Amazon
EC2 y asignndole un
subdominio
como enviar un entero de
una clase a otra con el
mtodo get set
llamar a un metodo que
esta en una clase hacia
otra clase
Lineamientos de publicacin
Proceso:
Siempre:
Creen una base de datos que se llame dbsample con una tabla que se llame Person
Poblenla ejmplo:
JPanel en netbeans
como generar un archivo txt
en java
Problema para comparar
valores null, vacio o "" de
un h:inputtext
pdfcrowd.com
Vayamos a nuestro editor de Java(les repito usen el que quieran casi en todos va a ser parecido yo
ltimas impresiones:
use JCreator
Programa automatico en
pero es casi lo mismo en NetBeans o Eclipse o como los machos con notepad jajaj)
Java
Configuren su editor y aadan las libreras en este caso jars para que compile correctamente deben
Ayuda jLabel
Error A fatal error has been
detected by the Java
Y tambin aadan
Activar camara
mysql-connector-java-5.1.13-bin
Problemas al desplegar en
Agradecemos el apoyo
de:
Runtime Environment:
Tomcat
aadir
Luego lo que haremos sera crear una clase que se llamara Person y tendra lo siguiente:
package dbsample;
public class Person {
private String name;
private int id;
private String address;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
pdfcrowd.com
package dbsample;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.sql.*;
pdfcrowd.com
pdfcrowd.com
pdfcrowd.com
pdfcrowd.com
Connection conn =
DriverManager.getConnection("jdbc:mysql://160.1.15.123:3306/dbsample",
"root",
"");
//Storing the DB in the ConfigurationContext
configctx.setProperty(DB_CONNECTION, conn);
} catch (Exception e) {
e.printStackTrace();
}
}
public void shutDown(ConfigurationContext configctx, AxisService service) {
Connection conn = (Connection) configctx.getProperty(DB_CONNECTION);
if (conn != null) {
try {
// closing the DB
conn.close();
} catch (SQLException e) {
System.out.println("Error while closing the DB connection");
}
}
}
}
Hay que compilar el cdigo de las clases (si utiliza algn IDE haz Build del proyecto) de acuerdo
a como yo lo he hecho
no les marcara warnings mas ni errores (Si utilizan algn IDE le marcara warnings en los
arreglos ArrayList, esto porque
les sugiere que deben ir tipeados ej. ArrayList<TIPO> list = new ArrayList<TIPO>(); )
Luego independientemente de donde hayan creado su proyecto (con IDE) o los archivos,
carpetas (de manera general)
agreguen una carpeta llamada META-INF (no se mucho de esto pero creo que deben respetar
las maysculas en el nombre de esa carpeta)
dentro de esa carpeta creen un archivo XML llamado services y dentro pongan.
<service name="DBService" class="dbsample.DBSampleServiceLifeCycle">
<description>Exposing a DB as a Web Service</description>
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
pdfcrowd.com
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
<parameter name="ServiceClass">dbsample.PersonDBService</parameter>
</service>
No conozco mucho de esto pero les voy a describir lo que creo que es cada cosa
service name = DBService : es el nombre que aparecer como el nombre de su servicio
pueden poner cualquier nombre
class= dbsample.DBSampleServiceLifeCycle : dbsample es el nombre de su paquete (.)seguido
del nombre de la clase
DBSampleServiceLifeCycle (que honestamente no entiendo)
La parte que sigue va siempre que quieran interactuar con un servicio ya sea para consumirlo o
proporcionarlo
<messageReceivers>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>
<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</messageReceivers>
Y por ultimo donde se encuentran los mtodos que harn las operaciones en la base de datos
<parameter name="ServiceClass">dbsample.PersonDBService</parameter>
Ahora lo que hay que hacer es poner los .class de sus archivos y la carpeta META-INF dentro
de un comprimido
pueden ponerlo dentro de un zip y renombrarlo a cualquiernombre.aar aqu lo importante es
que la extensin sea .aar
yo lo hice de la siguiente manera:
pdfcrowd.com
/services de la ruta
C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps\axis2\WEBINF\services
A continuacion iremos a nuetro explorador e escribiremos la url
http://localhost:8080/axis2/services/listServices
Si todo va bien podran ver una imagen como la siguiente
pdfcrowd.com
Eso indica que hay algun error y tendran que buscar, pero sera tarea de ustedes.
Como sugerencia les puedo decir que se fijen en el nombre del paquete y clases, que el archivo
XML este como en el ejemplo
Me consta que hasta ahorita todo debe funcionar
Si todo fue bien hagan click en DBService y le mostrara un XML de su servicio en
http://localhost:8080/axis2/services/DBService?wsdl
pdfcrowd.com
Con eso habr bastado para que tengan un servio Web con una interaccin con una base de
datos
Vamos a ver un poco de su funcionamiento
Si van a la direccion http://localhost:8080/axis2/services/DBService/listAllPeople
les mostra en un formato de XML las personas que tienen en su base de datos
pdfcrowd.com
*/
pdfcrowd.com
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Clientes extends JFrame
{
PersonDBService obj;
private
private
private
private
private
private
private
JLabel jLabel1,nombre,edad,direccion;
JTextField jTextField1;
JTextField jTextField2;
JTextField jTextField3;
JTextField jTextField4;
JButton jButton1;
JPanel contentPane;
public Clientes()
{
super();
initializeComponent();
this.setVisible(true);
}
private void initializeComponent()
{
obj= new PersonDBService();
jLabel1 = new JLabel("ID");
nombre = new JLabel("nombre");
direccion = new JLabel("direccion");
edad = new JLabel("edad");
jTextField1 = new JTextField();
jTextField2 = new JTextField();
jTextField3 = new JTextField();
jTextField4 = new JTextField();
jButton1 = new JButton("OK");
contentPane = (JPanel)this.getContentPane();
// jButton1
jButton1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
jButton1_actionPerformed(e);
}
});
//
// contentPane
pdfcrowd.com
//
contentPane.setLayout(null);
addComponent(contentPane, jLabel1, 7,27,60,22);
addComponent(contentPane, jTextField1, 85,27,100,22);
addComponent(contentPane, nombre, 7,55,60,22);
addComponent(contentPane, jTextField2, 84,55,100,22);
addComponent(contentPane, edad, 7,87,60,22);
addComponent(contentPane, jTextField3, 83,87,100,22);
addComponent(contentPane, direccion, 7,115,60,22);
addComponent(contentPane, jTextField4, 83,115,100,23);
addComponent(contentPane, jButton1, 71,147,83,28);
//
// Clientes
//
this.setTitle("Clientes ");
this.setLocation(new Point(0, 0));
this.setSize(new Dimension(273, 282));
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
/** Add Component Without a Layout Manager (Absolute Positioning) */
private void addComponent(Container container,Component c,int x,int y,int
width,int height){
c.setBounds(x,y,width,height);
container.add(c);
}
private void jButton1_actionPerformed(ActionEvent e){
obj.insertPerson(Integer.parseInt(jTextField1.getText()),jTextField2.getText(),jTex
tField4.getText(),Integer.parseInt(jTextField3.getText()));
}
//======================================================================//
public static void main(String[] args)
{
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch (Exception ex)
pdfcrowd.com
{
System.out.println("Failed loading L&F: ");
System.out.println(ex);
}
new Clientes();
}
}
Luego a partir de aqu viene lo interesante si este ejemplo lo fueron desarrollando con un IDE
cuando corran Clientes() todo ira bien
El problema que a mi se me presento es que quise hacer un jar (ejecutable) de la aplicacin y lo
logre de la siguiente forma
Cree un manifiesto (un archivo del tipo texto - ->.txt)
Dentro escrib:
Main-Class: pckCliente.Clientes
pdfcrowd.com
Sobre persistencia
2007
pdfcrowd.com
Blog
Submitted by benek on Jue, 06/24/2010 - 16:36.
Componente
Submitted by ezamudio on Vie, 06/25/2010 - 13:30.
Primero desarrolla un componente que haga lo que necesitas que haga. Por
ejemplo, un componente que tiene un mtodo que recibe ciertos
parmetros y devuelve un resultado (que puede ser un objeto, un mapa, un
entero, etc). Puede ser cualquier objeto en Java. Si necesita conectarse a
base de datos, le pones su DataSource, etc. Te aseguras que no maneje
estado (que no tenga variables de instancia que guarden algun estado interno del objeto), para
que pueda funcionar bien en un ambiente multi-hilos.
Ya que tienes todo eso y pasa tus pruebas unitarias bien, entonces simplemente debes publicar
ese componente como un web service. Como ya dijo Benek, willyxsoft public varios artculos de
web services en Java 6. Basta con que definas una interfaz (misma que implementa tu
componente, con el mtodo o mtodos que quieres publicar como web service), pones un par de
anotaciones en tu componente y tendrs lo necesario para generar el proxy para web service.
Class-Path en JAR
Submitted by ezamudio on Lun, 07/05/2010 - 09:48.
pdfcrowd.com
Hola muchas gracias por tu respuesta, pero te comento que ya lo hecho asi tengo el jar de mysql
en mi carpeta como tu lo indicas y tambien sale el mismo error he hecho varias "combinaciones" por
asi decirlo y nada intente poner el jar en la carpeta lib de tomcat y de axis y tampoco
De cualquier forma muchas gracias
classpath...
Submitted by ezamudio on Lun, 07/05/2010 - 10:45.
ok
Submitted by hugo.garcia on Lun, 07/05/2010 - 10:52.
si entiendo tu logica y lo voy hacer de esa forma, aunque tambien ya lo hice, tambien te comento
que las libreias de axis las inclui y como no se cuales son las necesarias y suficientes agregue
todas y se me hizo un jar enorme como de 20Mb aprox la traza es la siguiente:
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
pdfcrowd.com
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at dbsample.PersonDBService.insertPerson(PersonDBService.java:108)
at pckCliente.Clientes.jButton1_actionPerformed(Clientes.java:172)
at pckCliente.Clientes.access$400(Clientes.java:13)
at pckCliente.Clientes$5.actionPerformed(Clientes.java:98)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Sour
ce)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
pdfcrowd.com
en cliente?
Submitted by ezamudio on Lun, 07/05/2010 - 12:01.
Java and all Java-base d m ark are trade m ark s or re giste re d trade m ark s of Sun Microsyste m s, Inc. in the U.S. and othe r countrie s.
pdfcrowd.com
Agrade ce m os a Sintel TI por e l patrocinio de l se rvidor de dicado que hospe da a e sta com unidad.
pdfcrowd.com