Wieloplatformowe aplikacje sieciowe. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak



Podobne dokumenty
JAVA I BAZY DANYCH. MATERIAŁY:

Aplikacje bazodanowe. dr inż. Arkadiusz Mirakowski

AXIS2 - tworzenie usługi sieciowej i klienta Axis Data Binding. dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

Programowanie w języku Java. Bazy danych SQLite w Javie

Aplikacje Internetowe

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

przygotował: Bazy danych Paweł Kasprowski Wersja 2006Z

Wprowadzenie do JDBC z wykorzystaniem bazy H2

Bazy danych SQLite w Javie

Java Database Connectivity

Instytut Sterowania i Systemów Informatycznych Uniwersytet Zielonogórski. Zaawansowane Systemy Decyzyjne. Laboratorium

Java i bazy danych. 1. JDBC podstawy, transakcje. 2. Mapowanie relacyjno obiektowe. Hibernate, przykład.

prepared by: Programowanie WWW Model-View-Controller

Metody dostępu do danych

Java i jej wykorzystanie do tworzenia dynamicznych aplikacji Webowych

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Obiektowe programowanie rozproszone Java RMI. Krzysztof Banaś Systemy rozproszone 1

Remote Method Invocation 17 listopada Dariusz Wawrzyniak (IIPP) 1

Aplikacje RMI

Podejście obiektowe do budowy systemów rozproszonych

JAVA bazy danych. na bazie: Język Java - Podstawy Programowania - Jacek Rumiński

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Podejście obiektowe do relacyjnych baz danych Hibernate.

Enterprise JavaBeans

DB+frontend Inne języki H2. Bazy Danych i Systemy informacyjne Wykład 9. Piotr Syga

Remote Method Invocation 17 listopada 2010

Programowanie w języku Java

Bartosz Jachnik - Kino

Java rozszerzenie. dr. A. Dawid

Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie

Technologie internetowe laboratorium nr 4. Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS

Projektowanie aplikacji w modelu MVC opartej o framework CodeIgniter

Bazy danych dla producenta mebli tapicerowanych. Bartosz Janiak Marcin Sikora Wrocław r.

Katalog książek cz. 2

Aplikacje RMI Lab4

METODY PROGRAMOWANIA

Remote Method Invocation 17 listopada rozproszonych. Dariusz Wawrzyniak (IIPP) 1

Enterprise JavaBeans. 1. Architektura EJB: komponenty encyjne, komponenty sesyjne, komponenty sterowane komunikatami. 2. Kontenery EJB JBoss.

Podstawowe wykorzystanie Hibernate

Dostęp do komponentów EJB przez usługi Web Services

Wywoływanie metod zdalnych

Połączenie z bazą danych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Architektury Usług Internetowych. Laboratorium 2. Usługi sieciowe

Aplikacje Internetowe

Podejście obiektowe do budowy systemów rozproszonych

Java RMI. Dariusz Wawrzyniak 1. Podejście obiektowe do budowy systemów rozproszonych. obiekt. interfejs. kliencka. sieć

Java, bazy danych i SSL

Hibernate. 1. Wprowadzenie. 2. Uruchomienie dostarczonego przykładu. 3. Własny przykład.

Programowanie Obiektowe Java

Programowanie komputerów. Wykład 10: Dostęp do baz danych z poziomu aplikacji Java. (JDBC Database Access)

SOAP. Autor: Piotr Sobczak

Wywoływanie metod zdalnych

1. Czynności przygotowujące aplikację działającą na platformie Java SE Biblioteka5 (należy ją pobrać z załącznika z p.1)

Wykład dla studentów Informatyki Stosowanej UJ 2012/2013

Programowanie obiektowe

Programowanie Obiektowe Java

Ćwiczenie dotyczące platformy Java EE zostało przygotowane z myślą o środowisku NetBeans w wersji 7.3 (do pobrania z

1. Co można powiedzieć o poniższym kodzie? public interface I { void m1() {}; static public void m2() {}; void abstract m3();

Java Zadanie 1. Aby poprawnie uruchomić aplikację desktopową, należy zaimplementować główną metodę zapewniającą punkt wejścia do programu.

JDBC. Plan ćwiczenia. Wywoływanie poleceń SQL z języków programowania. Plan ćwiczenia cd. Wprowadzenie do laboratorium

Zaawansowane aplikacje WWW - laboratorium

Połączenia między bazami danych i programem w języku Java część 2

Typy sterowników. Rozdział 21 JDBC. Podstawowe kroki aplikacji. Historia. Program napisany w języku Java JDBC API. Menadżer sterowników JDBC

Wykorzystywanie parsera DOM w programach Java i PL/SQL

Zaawansowane aplikacje internetowe - laboratorium Architektura CORBA.

Bazy danych i usługi sieciowe

Tworzenie i wykorzystanie usług

Komponenty sterowane komunikatami

RESTful Android. Na co zwrócić uwagę przy tworzeniu aplikacji klienckich REST na Androidzie

Metody dostępu do danych

Protokół JDBC współpraca z relacyjnymi bazami danych

Bazy Danych i Usługi Sieciowe

1. Co można powiedzieć o poniższym kodzie (zakładając, że zaimportowano wszystkie niezbędne klasy)?

Aplikacje RMI. Budowa aplikacji rozproszonych. Część 2.

JDBC (Java Database Connectivity vit )

Łączenie z bazą danych przykładowa klasa infpolaczenie import java.sql.drivermanager; import java.sql.connection; import java.sql.

Wdrożenie modułu płatności eservice. dla systemu Gekosale 1.4

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Zdalne wywołanie metod - koncepcja. Oprogramowanie systemów równoległych i rozproszonych Wykład 7. Rodzaje obiektów. Odniesienie do obiektu

Oprogramowanie systemów równoległych i rozproszonych Wykład 7

Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.

Wykład 7: Pakiety i Interfejsy

1. Uruchomić i skonfigurować środowisko tworzenia aplikacji i serwer aplikacji.

Java Database Connectivity

akademia androida Składowanie danych część VI

Wykład 12. Programowanie serwera MS SQL 2005 w C#

Plan wykładu CORBA. Cechy aplikacji rozproszonych. Aplikacje rozproszone

Elementy JEE. 1. Wprowadzenie. 2. Prerekwizyty. 3. Pierwszy servlet. obsługa parametrów żądań 4. JavaServer Pages.

Podstawy otwartych języków programowania Java Database Connectivity (JDBC)

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

Programowanie poprzez testy z wykorzystaniem JUnit

Zastosowanie informatyki w gospodarce Wykład 4

Języki Programowania II Wykład 3. Java podstawy. Przypomnienie

Systemy Rozproszone - Ćwiczenie 6

Klasy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 13

Programowanie obiektowe

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 2).

Instrukcja 10 Laboratorium 13 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse

Zaawansowane aplikacje internetowe - laboratorium Web Services (część 1).

Transkrypt:

Wieloplatformowe aplikacje sieciowe dr inż. Juliusz Mikoda mgr inż. Anna Wawszczak

SOAP Serwer: Axis2 / Java Wbudowany komponent nasłuchujący, (Apache / Tomcat) Client Axis2 klient / XML Jeżyk programowania: Java, PHP / C++

Server Axis2 http://axis.apache.org/axis2/java/core/ bin axis2server.sh axis2.sh setenv.sh java2wsdl.sh wsdl2java.sh lib samples webapp conf repository modules services services.list version.aar

src/pl/test/curses.java Kursy walut - serwer package pl.test; public class Curses { private HashMap<String, Double> data = new HashMap<String, Double>(); public Curses() { data.put("usd", new Double(2.8850)); data.put("gpb", new Double(4.6407)); data.put("eur", new Double(4.0615)); data.put("pln", new Double(1.0)); public double getcourse(string symbol) { Double price = (Double) data.get(symbol); if(price!= null) return price.doublevalue(); return 0.00;

Kursy walut confgurator src/services.xml <service name="courses" scope="application" targetnamespace="http://test.pl/"> <description>courses calculator</description> <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> <schema schemanamespace="http://test.pl/xsd"/> <parameter name="serviceclass">pl.test.curses</parameter> </service>

Kursy walut Kompilacja mkdir build/classes cp src/services.xml build/classes/meta-inf/ javac -d build/classes/./src/pl/test/curses.java -g %AXIS2_HOME%/bin/java2wsdl.sh -cp./build/classes -cn pl.test.curses -of build/curses.wsdl jar cvf build/curses.aar -C build/classes/. cp build/curses.aar %AXIS2_HOME%/repository/services/

Kursy walut Testowanie http://was.icis.pcz.pl:8080/axis2/services/ Courses Available operations * getcourse http://was.icis.pcz.pl:8080/axis2/services/courses?wsdl http://was.icis.pcz.pl:8080/axis2/services/courses/ getcourse?symbol=pln getcourse?symbol=usd getcourse?symbol=chf

Kursy walut przeliczenie / aktualizacja public double convertcourse( String symbolfrom, double value, String symbolto) { Double pricefrom = (Double) data.get(symbolfrom); Double priceto = (Double) data.get(symbolto); if (pricefrom!= null && priceto!= null) { return (value * pricefrom.doublevalue()) / priceto.doublevalue(); return 0; public void update(string symbol, double price) { data.put(symbol, new Double(price));

Kursy walut przeliczenie / aktualizacja javac -d build/classes/./src/pl/test/curses.java -g jar cvf build/curses.aar -C build/classes/. rm %AXIS2_HOME%/repository/services/Curses.aar cp build/curses.aar %AXIS2_HOME%/repository/services/ http://.../convertcourse? symbolfrom=pln&value=10&symbolto=gpb http://.../convertcourse? symbolfrom=pln&value=10&symbolto=ibm http://.../update?symbol=ibm&price=100

Kursy walut klient ADB Axis Data Binding %AXIS2_HOME%\bin\wsdl2java.sh -uri http://was.icis.pcz.pl:8080/axis2/services/courses?wsdl -d adb -s -o build\client -uri adres / plik z opisem wepserwisu -d framework powiazania: xmlbeans, adb, jibx, and none -s połączenie synchroniczne -o katalog wyjściowy

Kursy walut klient ADB String uri = "http://was.icis.pcz.pl:8080/axis2/services/courses"; try { CoursesStub stub = new CoursesStub(uri); CoursesStub.GetCourse req = new CoursesStub.GetCourse(); req.setsymbol("usd"); CoursesStub.GetCourseResponse res = stub.getcourse(req); System.err.println(res.get_return()); catch (Exception e) { e.printstacktrace();

MySQL baza danych CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(50) NOT NULL, `pass` varchar(40) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Bazy danych - jdbc Do poprawnego działania MySQL'a w Java wymagany jest sterownik bazy danych. Obecnie: mysql-connector-java-5.1.15 W czasie uruchamiania należy dodać ścieżkę do tego sterownika. W axis2: %AXIS2_HOME%/lib/mysql-connector-java-5.1.15-bin.jar

Połączenie MySQL import java.sql.connection; import java.sql.drivermanager; import java.sql.resultset; import java.sql.statement; public class Test { public static void main(string[] args) { try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/test"; Connection con = DriverManager.getConnection(url,"test", "test");

Połączenie MySQL Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery("select * from users;"); while(rs.next()) { int id = rs.getint("id"); String login = rs.getstring("login"); String pass = rs.getstring("pass"); System.out.println( id + " " + login + " " + pass); stmt.close(); con.close(); catch (Exception e) { e.printstacktrace();

Połączenie MySQL - zmiany String insert = "INSERT INTO users (login, pass) " + "VALUES('ddd',MD5('ddd'))"; stmt.executeupdate(insert); Kompilacja: javac Test.java java -cp mysql.jar:./ Test