Vous êtes sur la page 1sur 24

Sk ip to Main C onte nt

Search this site:

Buscar

...
Inicio

Lineamientos

Blogs

Foros de Discusin

Encuestas

Usuarios

Tips

Principal :: Foros :: Java Enterprise

Inicio de sesin
Nombre de usuario: *

Contrasea: *

Actualizado -- Ejemplo de WebService con Base de


Datos -- Resuelto a la mitad

Iniciar sesin
Crear cuenta nueva
Solicitar nueva contrasea

Submitted by hugo.garcia on Jue, 06/24/2010 - 08:55 Java Enterprise

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

Web Service - Base de Datos

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

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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:

tionException: could not


initialize proxy - no Session
.

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

Tomcat: baje la version 6 que ya viene con un instalador de Windows

Comentarios recientes
re: Comoenviar un entero

Reside en C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0

hace 8 horas 42 mins


relaciones
hace 11 horas 20 mins
El problema es que el
hace 14 horas 5 mins
nginx
hace 14 horas 13 mins

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

hace 14 horas 21 mins

Y (2) lo puse en C:\Archivos de programa\Apache Software Foundation\Tomcat 6.0\webapps

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

encontre este ejemplo que

MySql: yo instale MySql Server Community Edition baje la versin 1.5 con instalador de Windows

menciono en esta pagina


hace 15 horas 38 mins

Como un consejo si piensan utilizar la aplicacin como cliente servidor, o no se ,que no sea solo

me marca un error

local,

hace 18 horas 23 mins

en el proceso de configuracin palomeen la casilla de permitir al root conectarse remotamente

Apache es el servidor http

(en el caso de que conecten como root)

hace 1 da 13 horas
class Una {

Tambin bajen el jar de mysqlconnector para java

Otra o;

hace 1 da 15 horas
Apache es el servidor http
hace 2 das 16 horas

Levanten el servicio de Apache Tomcat


Si todo va bien deberian ser capaces de ver lo siguiente en
http://localhost:8080

Encuesta
Qu lenguaje alternativo
para la JVM te llama ms la
atencin?:
Groovy
Scala
Clojure
JRuby
Jython
Otro... (menciona cul)
Votar

Contenido popular

open in browser PRO version

Y despues en http://localhost:8080/axis2

Are you a developer? Try out the HTML to PDF API

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

Asegrense de poder ver el servidor corriendo y tambin Axis2

Proceso:
Siempre:

Creen una base de datos que se llame dbsample con una tabla que se llame Person

Estructura de datos java


(Listas simplemente
enlazadas) Primer aporte
Como programar en java
Deitel & Deitel 7ma Edicion
Cargar una imagen en un

Poblenla ejmplo:

JPanel en netbeans
como generar un archivo txt
en java
Problema para comparar
valores null, vacio o "" de
un h:inputtext

CREATE TABLE PERSON (ID INTEGER NOT NULL,


NAME VARCHAR (100) NOT NULL,
ADDRESS VARCHAR (500),
AGE INTEGER,
PRIMARY KEY (ID));

INSERT INTO PERSON (ID, NAME, ADDRESS, AGE)


VALUES (1, "hugo garcia", "en algun lugar", 27)
INSERT INTO PERSON (ID, NAME, ADDRESS, AGE)
VALUES (2, "java mexico ", "en la web", 30)
INSERT INTO PERSON (ID, NAME, ADDRESS, AGE)
VALUES (3, "alguien mas", "en todas partes", 37)
Una vez creada la base y poblada con algunos datos

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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:

las que vienen en C:\Archivos de programa\axis2-1.5.1-bin\axis2-1.5.1\lib(no todas se usan


pero para no tener que adivinar)

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;
}

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

public void setAge(int age) {


this.age = age;
}
}
Otra clase que se llamara NameAge
package dbsample;
public class NameAge {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

Creamos una clase que se llamara PersonDBService ojo donde va("jdbc:my


sql://IP/dbsample","root", "root");
Por IP sustituyan su IP (ej. 100.100.100.100) o localh
ost

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.*;

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

public class PersonDBService {


public Person[] listAllPeople() {
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection
("jdbc:mysql://IP/dbsample","root", "root");
}
catch(SQLException ex){ex.printStackTrace();}
catch(ClassNotFoundException exx){exx.printStackTrace();}
if(conn !=null) {
String SQL = "SELECT * FROM PERSON";
try {
PreparedStatement statement = conn.prepareStatement(SQL);
ResultSet result = statement.executeQuery();
ArrayList list = new ArrayList();
while (result.next()) {
Person person = new Person();
person.setId(result.getInt("ID"));
person.setName(result.getString("NAME"));
person.setAddress(result.getString("ADDRESS"));
person.setAge(result.getInt("AGE"));
list.add(person);
}
return (Person[])list.toArray(new Person[list.size()]);
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
public String[] listPeopleNames() {
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection
("jdbc:mysql://IP/dbsample","root", "root");
}
catch(SQLException ex){ex.printStackTrace();}
catch(ClassNotFoundException exx){exx.printStackTrace();}
if(conn !=null) {

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

String SQL = "SELECT NAME FROM PERSON";


try {
PreparedStatement statement = conn.prepareStatement(SQL);
ResultSet result = statement.executeQuery();
ArrayList list = new ArrayList();
while (result.next()) {
list.add(result.getString("NAME"));
}
return (String[])list.toArray(new String[list.size()]);
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
public NameAge getNameAge(int id) {
Connection conn=null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection
("jdbc:mysql://IP/dbsample","root", "root");
}
catch(SQLException ex){ex.printStackTrace();}
catch(ClassNotFoundException exx){exx.printStackTrace();}
if(conn !=null) {
String SQL = "SELECT NAME , AGE FROM PERSON WHERE ID=?";
try {
PreparedStatement statement = conn.prepareStatement(SQL);
statement.setInt(1, id);
ResultSet result = statement.executeQuery();
if (result.next()) {
NameAge nameAge = new NameAge();
nameAge.setName(result.getString("NAME"));
nameAge.setAge(result.getInt("AGE"));
return nameAge;
}
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

public void insertPerson(int id, String name, String address,int age) {


Connection conn = null;
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection
("jdbc:mysql://IP/dbsample","root", "root");
}
catch(SQLException ex){ex.printStackTrace();}
catch(ClassNotFoundException exx){exx.printStackTrace();}
if(conn !=null) {
String SQL = "INSERT INTO PERSON (ID , NAME , ADDRESS , AGE) VALUES
(?,?,?,?)";
try {
PreparedStatement statement = conn.prepareStatement(SQL);
statement.setInt(1,id);
statement.setString(2,name);
statement.setString(3,address);
statement.setInt(4,age);
statement.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
Y por ultimo la clase DBSampleServiceLifeCycle
package dbsample;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.description.AxisService;
import org.apache.axis2.engine.ServiceLifeCycle;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBSampleServiceLifeCycle implements ServiceLifeCycle {
public static final String DB_CONNECTION = "dbconnection";
public void startUp(ConfigurationContext configctx, AxisService service) {
try {
Class.forName("com.mysql.jdbc.Driver");
// Creating the DB connection for the sample DB

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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"/>

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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:

jar cfm servicioBD.aar dbsample/*.class META-INF


Y eso les creara un comprimido
Una vez que tengamos nuestro archivo comprimido lo siguiente es copiarlo dentro de la carpeta

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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

De lo contrario veran una imagen como la siguiente

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Para agegar una persona sera con la url


http://localhost:8080/axis2/services/DBService/insertPerson?
id=130&name=Peter&address=No5,Colombo,SriLanka&age=56
(no se por qu?, pero si ponen espacios har nada)
Si quieren ver si realmente hizo la insercin solo hagan un select a su tabla

Aqui comienza mi parte y mi error


Luego mi idea es consumir el servicio web en un contexto de cliente servidor por lo que me
tome la libertad de crear una ventana grafica
como la que aparece a continuacin
y su repectivo codigo :
package pckCliente;
import dbsample.*;
import java.rmi.RemoteException;
/****************************************************************/
/*
Clientes
/****************************************************************/

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

*/

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

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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)

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

{
System.out.println("Failed loading L&F: ");
System.out.println(ex);
}
new Clientes();
}
}

donde como ven la magia(...) sucede en dos lineas:


.
.
.
obj= new PersonDBService();
.
.
.
obj.insertPerson(Integer.parseInt(jTextField1.getText()),jTextField
2.getText(),
j
TextField4.getText(),Integer.parseInt(jTextField3.getText()));
.
.
.

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

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Class-Path: mysql-connector-java-5.1.13-bin.jar dbsample/


Y en la linea de comandos
jar cvfm BD.jar manifest.txt pckCliente.Clientes dbsample/*.class
y listo tengo mi ejecutable BD.jar
Aqu viene mi duda
En consola ejecuto:
java -jar BD.jar
Y aparece mi ventana
Pero cuando lleno los campos y hago clic en OK me manda la siguiente traza de errores:
Que no encuentra el driver
Y no se por qu?
Tambien lo he agregado de la siguiente forma:
jar cvfm BD.jar manifest.txt pckCliente.Clientes dbsample/*.class mysql-connector-java5.1.13-bin.jar
Sin ms por el momento agradezco si alguien me ayuda
Espero les haya gustado sobre todo que lo hayan entendido
Espero haber sido claro
Y no es justificacin pero esta es mi primera aportacin en cualquier foro
--NO NIEGUES LO QUE HAZ DE PEDIR DESPUES
--Las mquinas no tienen palabra- Desencriptar archivos Excel con formato

Sobre persistencia

2007

Inicie sesin o regstrese para enviar comentarios

Opciones de visualizacin de comentarios


Lista plana: expandida

Fecha: primero los ms antiguos

50 comentarios por pgina

Guardar las opciones


Seleccione la forma que prefiera para mostrar los comentarios y haga clic en Guardar las opciones

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

para activar los cambios.

Blog
Submitted by benek on Jue, 06/24/2010 - 16:36.

Checa en el blog de willyxoft, tiene una serie de posts de WS bastante


interesante.
Saludos.
Javier Ramrez Jr.
http://twitter.com/_benek

Inicie sesin o regstrese para enviar comentarios

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.

Inicie sesin o regstrese para enviar comentarios

Class-Path en JAR
Submitted by ezamudio on Lun, 07/05/2010 - 09:48.

Cuando usas Class-Path en el manifiesto de un jar, los jars que indiques se


buscan relativos al mismo directorio del jar donde se especifican. Es decir si
tienes tu jar en /tmp entonces el driver de mysql tambin debe estar en

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

/tmp; no sirve de nada incluir el driver de mysql dentro del jar de tu


aplicacin.

Inicie sesin o regstrese para enviar comentarios

Gracias, pero no se resolvio el problema


Submitted by hugo.garcia on Lun, 07/05/2010 - 10:41.

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

Inicie sesin o regstrese para enviar comentarios

classpath...
Submitted by ezamudio on Lun, 07/05/2010 - 10:45.

Segn entiendo, el driver de mysql solamente debe estar en el server de


hecho, porque es quien se conecta a la base de datos. La idea es que en el
cliente no necesitas el driver porque no se conecta a base de datos,
solamente invoca el web service. Pero en el cliente necesitas las libreras de
Axis2 en el classpath...
Por cierto no se ve el stacktrace que pusiste como imagen, as que no podemos saber qu dice.

Inicie sesin o regstrese para enviar comentarios

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)

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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)

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Inicie sesin o regstrese para enviar comentarios

en cliente?
Submitted by ezamudio on Lun, 07/05/2010 - 12:01.

Pero esa excepcin te sale en el cliente? Si te sale en el cliente, es sntoma


de que algo ests haciendo mal, cargando algo que no deberas... el cliente
de web service no necesita acceso a la base de datos (si lo tuvieras, para
qu quieres el web service?)
Como te deca, no sirve de nada que metas ms jars al jar de tu aplicacin.
Deben estar disponibles en el classpath, si es que pones las referencias a ellos en el atributo
Class-Path del MANIFEST.MF
En cuanto a las libreras mnimas necesarias, yo he arrancado clientes de web services con estas
dependencias de axis (1.5):
axiom-api-1.2.8.jar
axis2-adb-1.5.jar
axis2-transport-local-1.5.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
wsdl4j-1.6.2.jar
axiom-dom-1.2.8.jar
axis2-kernel-1.5.jar
commons-codec-1.3.jar
httpcore-4.0.jar
wstx-asl-3.2.4.jar
axiom-impl-1.2.8.jar
axis2-transport-http-1.5.jar
commons-httpclient-3.1.jar
neethi-2.0.4.jar
XmlSchema-1.4.3.jar

Inicie sesin o regstrese para enviar comentarios

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.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

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.

open in browser PRO version

Are you a developer? Try out the HTML to PDF API

pdfcrowd.com

Vous aimerez peut-être aussi