Professional Documents
Culture Documents
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