You are on page 1of 6

10/10/2016

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP|ProgramadorPHP.ORG

Inicio
Trabajosrealizados
Contacto
Blog
Cursosytalleres
Noticias
Portfolio

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP
Lunes,1demarzode2010|3respuestas

INTRODUCCIN
GlassfisheselservidordeaplicacionesWebdeSun,comohayquecrearundominiodentrodelservidordeaplicacionesyestoconsumemuchos
recursosnoseutilizaenmquinasconvencionalesyaqueelcostedeimplementacindeunservidordedominiospuedeserdemasiadoelevadopor
lacargaquesuponedichatareaapesardequesepuedeimplementarsobreApache.
SiinstalamoslaltimaversindeNetbeansconGlassfishpodemospasardirectamentealaseccindeCrearelModelodedatosalqueacceder
desdeServiciosWeb
PodemosconfigurarnuestrodominiotantoconlaconsolacomodentrodeNetBeans,usandolainterfazdeusuario.Vamosavercmosehacede
lasdosformas,primeroconlaconsola:
1.DescargarGlassfish:aqueinstalarconelcomando:
javaXmx256mjarglassfishinstallerv2.1.1b31gwindows.jar
yahora,entrareneldirectorioglassfish,establecerlasvariablesdeentornoJAVA_HOMEavuestrodirectoriodeinstalacinJDKylo
mismoparaPATHaadindoleeldirectoriodeglassfish,entoncesejecutamoselcomando:
lib\ant\bin\antfsetup.xml
desdeeldirectoriodeglassfish.
2.Iralaherramientadeadministracinporconsoladelservidor,esten:
glassfish/bin/asadmin.bat
ahoravamosacrearundominiomediantelainstruccin(enlaconsoladelserver):
createdomainusernombre_usuario_adminadminportnumero_puertonombredominio
ennuestrocasousaremoseldominioExcaliburconusuariorootyelpuerto6666:
createdomainuserrootadminport6666excalibur
estodebedetardarunpoquito,sehabrcreadoundirectorioparaeldominioenglassfish/domains/excalibur,yahora,justodespus,
levantaremoseldominioenelservidorconlainstruccin:
startdomainexcalibur
3.Ahorapodrishacerusodeladireccinhttp://localhost:6666conlosdatosdeusuarioparaadministrarelserver.Podispararloconstop
domain.
Sloosdirqueenmimquina,alcargarelservidorycreareldominio,meempezaconsumirsuproceso30MBdeRAM,trasiniciardicho
dominioyaibapor178MBysubiendoimaginaosunservidordedecenasocientosdedominiosenmemoriamsde900MBpasa
perfectamenteyadems,estoenunservidorIBMesnormalparaunnicoproceso.
DespusdetrabajarenleccionesanterioresconNetBeans,yadeberamosconocerlasventajasdeutilizaresteIDE
1.ArrancarNetBeans,iralapestaadeServicios>Servidores>Segundobotndelratn>aadirservidor>
siosdunerroronosaleningunaventananecesitisactualizarvuestraversindelJDKdeJavayreinstalarlaltimaversindeNetBeans
quetraeunaversindeGlassfish3.Servidores>iniciar>http://localhost:4848/
2.ParacomprobarqueelservidorestfuncionandovamosacrearunnuevoproyectodetipoJavaweb>WebApplication>compilary
Ejecutar,enelnavegadordebeaparecerunHolaMundo

http://www.programadorphp.org/blog/cursos/creaciondeservicioswebconnetbeansyglassfishjavayphp/

1/6

10/10/2016

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP|ProgramadorPHP.ORG

Ahoravamosaaprendercmosecreanservicioswebqueutilicencomplejasestructurasdedatosascomocoleccionesyanotaciones,
reutilizables,desdedistintosclientesquerealicenlasoperacionesdesdeJAVAoPHP.TambinaprenderemosadefinirunficheroWSDLpara
crearunservicio,ambascosasconNetbeansyusaremosJAXWSparaconstruirlosclientesautomticamente,esdecir,elclientedelservicioweb
(programaquelousadesdelamquinadeunusuarioqueseconectaalosserviciosdeunservidor)traduciendolosmensajesquesecomunican
porelprotocoloSOAP.

CrearelModelodedatosparaServiciosWeb(Webservices)conJavaenNetbeans
Resumendeloquevamosahacer:crearunserviciowebpararegistrar(ennuestromodelodedatos)usuarios,pilotosynavesenlabasededatos
delaclasequeimplementaelcomputadorrecordarelproyectoBSGModelo
Graciasaunaclasellamadaadministracionquecrealosusuariosseleasociaunpilotoyasteunanave(viper),todoestoquedaalmacenadoenel
modelodedatosdelcomputadorNexusqueseejecutasobreelservidorExcalibur(glassfish)yquelanzaexcepcionesconstruidaspornosotrosal
niveldeaplicacionesyserviciosweb.
Abrirelproyectodelaleccin2:BSGModeloyharemoslosiguiente:
1.YaquetodoservicioseconstruyeapartirdeunProyectoWeb,vamosacrearunnuevoproyectoweb:File>NewProject>JavaWeb>
WebApplication,nombre:Excalibur,paraquepodamosalmacenardatosyconfeccionarasociacionesentreelproyectoBSGModeloyel
proyectodeAplicacinWebconServiciosllamadoExcaliburvamosaesteproyecto>segundobotnenLibraries>AddProject>
seleccionarBSGModeloyAddProjectJARfiles.
2.AhoravamosamodificarelproyectoBSGModelo,enes.ugr.battlegalactica.modelos>botnderecho>New>JavaClass>
nombre:Usuarios,comotenemosqueasociarlosvipersylospilotos,debemoscambiarprimerolaclasepilotosparameterdentrouna
listadevipers,crearenusuariosunalistadepilotosenlaclaseusuariosyluegoaadirunalistadeusuariosennexus.Elcdigohaquedar
as:

DescargarBSGModelo_usuarios.
Paraqueprobemostodosestoscambios,hemoshechocambiosalafuncinMaindelaclasePrueba.java:

//Web2.0:ArquitecturaOrientadaaServiciosenJava
//PrimerModelo:BSGModeloconlaclasePrueba
//@authorJuanBelnPrez

packagees.ugr.battlegalactica;

importes.ugr.battlegalactica.modelo.Elemento;
importes.ugr.battlegalactica.modelo.Nexus;
importes.ugr.battlegalactica.modelo.Piloto;
importes.ugr.battlegalactica.modelo.Usuario;
importes.ugr.battlegalactica.modelo.Viper;
importes.ugr.battlegalactica.modelo.excepciones.NoHayArmamentoException;
importes.ugr.battlegalactica.modelo.excepciones.PilotoNoEncontradoException;
importes.ugr.battlegalactica.modelo.excepciones.ViperNoEncontradoException;
importjava.util.ArrayList;
importjava.util.Iterator;

/**
*Claseconlos3primerosejerciciospropuestos
*@authorJuanBelnPrez
*/
publicclassPrueba{
privatestaticArrayList<Elemento>elementos;
privatestaticArrayList<Piloto>pilotos;
privatestaticArrayList<Viper>vipers;

http://www.programadorphp.org/blog/cursos/creaciondeservicioswebconnetbeansyglassfishjavayphp/

2/6

10/10/2016

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP|ProgramadorPHP.ORG
privatestaticNexusnexus;

//Funcinprincipal.
//Imprimeporpantallaunmensajefijo.
//@paramargslalineadeargumentosdelprograma

publicstaticvoidmain(String[]args)
throwsNoHayArmamentoException,PilotoNoEncontradoException,
ViperNoEncontradoException{
System.out.println("PruebadelmodelodedatosBattleStarGallactica");
//creardoselementoseimprimirsusidentificadoresenlaconsola.
//Sitodohaidobiensedeberanescribirlosidentificadores1y2
init();
System.out.println("Pruebadecreacindeelementos:");
for(Elementoe:elementos){
System.out.printf("%d,",e.getId());
}
System.out.println("\nPruebadecreacindepilotos:\n");
for(Pilotop:pilotos){
System.out.printf("ID:%d,Nombre:%s,Destreza:%d\n",p.getId(),p.getNombre(),
p.getDestreza());
}
System.out.println("\nPruebadecreacindevipers:\n");
for(inti=0;i<4;i++){//Disparar4vecescontodoslosvipers:
for(Viperv:vipers){
System.out.printf("#%d#DisparandoconelviperID:%d,Nombre:%s,"+
"Armamento:%d\n",(i+1),v.getId(),v.getNombre(),v.getArmamento());
try{
v.disparar();
}catch(NoHayArmamentoExceptione){
System.err.println("\n\tErroraldisparar:"+e.getMessage()+"\n");
}
System.out.printf("\tElnuevoarmamentodelviperconID:%dyNombre:%s"+
"ahoratiene%dunidad/es\n",
v.getId(),v.getNombre(),v.getArmamento());
}
}
System.out.println("\nPruebadecreacindeNexusconPilotos:\n");
Iterator<Piloto>iter_piloto=nexus.listarPilotos();
Pilotoaux_piloto=null;
while(iter_piloto.hasNext()){
aux_piloto=iter_piloto.next();
System.out.printf("Piloto%s,ID:%d\n",aux_piloto.getNombre(),
aux_piloto.getId());
}
System.out.println("\nPruebadecreacindeNexusconVipers:\n");
Iterator<Viper>iter_viper=nexus.listarVipers();
Viperaux_viper=null;
while(iter_viper.hasNext()){
aux_viper=iter_viper.next();
System.out.printf("Viper%s,ID:%d\n",aux_viper.getNombre(),
aux_viper.getId());
}
if(aux_piloto!=null){
System.out.println("\nPruebadebsqueda(elltimo:"+
aux_piloto.getId()+")dePilotosenNexus:\n"+
nexus.obtenerPiloto(aux_piloto.getId()).getNombre());
}
if(aux_viper!=null){
System.out.println("\nPruebadebsquedadeVipers(elltimo:"+
aux_viper.getId()+")enNexus:\n"+
nexus.obtenerViper(aux_viper.getId()).getNombre()
);
}

System.out.println("\nComprobarquesegeneranlasexcepciones"+
"buscandounPilotofalso:23\n");
try{
aux_piloto=nexus.obtenerPiloto(newLong(23));

http://www.programadorphp.org/blog/cursos/creaciondeservicioswebconnetbeansyglassfishjavayphp/

3/6

10/10/2016

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP|ProgramadorPHP.ORG
}catch(PilotoNoEncontradoExceptionex){
System.err.println("\n\t"+ex.getMessage());
}
System.out.println("\nComprobarquesegeneranlasexcepciones"+
"buscandounViperfalso:23");
try{
aux_viper=nexus.obtenerViper(newLong(23));
}catch(ViperNoEncontradoExceptionex){
System.err.println("\n\t"+ex.getMessage());
}

try{
Usuariousuario=nexus.obtenerUsuario("juaxix");
System.out.println("\nCreacindeunusuario("+
usuario.getUsuario()+"conpiloto:"+

(nexus.obtenerPiloto(
usuario.getPilotos().get(0)
).getNombre())+"yviperasociadoaestepiloto:"+
nexus.obtenerViper(
nexus.obtenerPiloto(
(nexus.obtenerUsuario(usuario.getId()).getPilotos().get(0))
).getNaves().get(0)
).getNombre()
);
System.out.flush();
}catch(PilotoNoEncontradoExceptionex){
System.err.println("\n\t"+ex.getMessage());
}catch(Exceptionex){
System.err.println("\n\tNEXUSLOG:"+ex.getMessage());
}
}

//Inicializadordeelementos,pilotos,vipersyNexus(vipers,pilotosyusuarios)
privatestaticvoidinit(){
Viperv_aux;
elementos=newArrayList<Elemento>();
pilotos=newArrayList<Piloto>();
vipers=newArrayList<Viper>();
nexus=newNexus();
elementos.add(newElemento());
elementos.add(newElemento());

v_aux=newViper("Trueno");
v_aux.setArmamento(4);
vipers.add(v_aux);

pilotos.add(newPiloto("Migue",120,v_aux.getId()));
v_aux=newViper("Rayo");
v_aux.setArmamento(4);
vipers.add(v_aux);
pilotos.add(newPiloto("Sara",110,v_aux.getId()));

//INTRODUCIRDATOSENNEXUS:
v_aux=newViper("Trueno");
v_aux.setArmamento(4);
nexus.guardarViper(v_aux);
Pilotojuax=newPiloto("Juax",130,v_aux.getId());
nexus.guardarPiloto(juax);

v_aux=newViper("Fuego");
v_aux.setArmamento(5);
nexus.guardarViper(v_aux);
nexus.guardarPiloto(newPiloto("Jess",130,v_aux.getId()));
//CreacindeunusuarioenNexus:
ArrayList<Long>lista_pilotos_usuario=newArrayList<Long>();
lista_pilotos_usuario.add(juax.getId());
Usuariousuario=newUsuario("juaxix"//nombreusuario/
,"juaxix"//password

http://www.programadorphp.org/blog/cursos/creaciondeservicioswebconnetbeansyglassfishjavayphp/

4/6

10/10/2016

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP|ProgramadorPHP.ORG
,lista_pilotos_usuario//listadeidsdepilotosasociados
);
nexus.guardarUsuario(usuario);

Laideadelmodelodedatosesparecidaaunmodelodecajas:

Lanuevalneaquehademostrarlaejecucindeestaclase(elproyectoBSGModelo)es:
Creacindeunusuario(juaxixconpiloto:Juaxyviperasociadoaestepiloto:Trueno
3.Parausarlosservicios,creamosunnuevopaquete,enelproyectoJavaWebllamadoExcalibur>SourcePackages>botnderecho>
New>JavaPackage>llamadoes.ugr.battlegalactica.servicios.
Continuar>
<volveralCursodeArquitecturadeServiciosWebconJAVA+XML+PHP

Artculosrelacionados:
BPELyOpenESB:OrquestacindeServiciosWeb
CursodePHPyserviciosWeb
CreacindeunpaquetedeservicioswebparaunmodelodedatosJAVA
Conceptosbsicos:XML+JAVA+JDOM+SOAP+PHP
AplicacinparaiPhone:CartaAstral
AplicacinwebdeanunciosconmapasdeGoogleMaps

3Respuestas

1.

fernandojavierdice:
15febrero,2012alas21:34
estamuybienmiranecesitoayuda
medejaronunproyecto
elcualesmostrarinformaciondevacantesdeunaempresayqueestesubidaestainformacioneninternet.Enunsitioweb.
tienenservidorglasfish3.0.1ylaprogramacionseraenjavanetbens6.8yparaeldiseodelsitiowebseutilizaradreamweavercs4.
mipreguntacreesqueeneseservidoryopuedaalojarelsitioyqueestefuncionandoeninternetyopiensoqueno.
estariabientuopiniongracias.
Responder

2.

pablodice:
19abril,2012alas3:26
hola.soyestudiante,quieroaccederaunapaginawebhosteadaenunamaquina,desdeotramaquinadelamismared,lawebestapublicada
englasfish,sepuede?comotendriaquehacer?
muchasgracias:)
pablo
Responder
JuanBelndice:

http://www.programadorphp.org/blog/cursos/creaciondeservicioswebconnetbeansyglassfishjavayphp/

5/6

10/10/2016

CreacindeServiciosWebconNetbeansyGlassfishJAVAyPHP|ProgramadorPHP.ORG

20abril,2012alas8:43
claroquepuedesperoeltemadequeseaGlassfishoApachedaunpocoigualporquetienesquemeterlemanoalproblemausando
conocimientosderedesdeordenadores,entuconfiguracinderedesdeberascrearunainterfazvirtualporejemplo,desdeel
ordenadorqueaccedaalasdosredesyesainterfazvirtualconectaramedianteunenrutado(comandoroute)ambassubredesyya
podrasacceder
Responder

Dejatucomentario
Nombre(requerido)
Mail(nopublicado)(necesario)
Website

Pleasetypethecharactersofthiscaptchaimageintheinputbox

EnviarComentario

Categoras
Blog
Cursosytalleres
Noticias
Portfolio

Pginas
Aprendeaprogramar
AvisoLegal
Contacto
iOSApps
ProgramadorWebFreelance|Acerca

Buscar...
Buscar...

jbelon|sitemap.xml
Closecookiepopup
Estesitiowebusacookies:Sisiguesnavegandoenl,significaqueaceptaslapolticadeprivacidaddelavisolegalsobrecookies.

http://www.programadorphp.org/blog/cursos/creaciondeservicioswebconnetbeansyglassfishjavayphp/

6/6

You might also like