Servus,
Also ich wollt mir einen WebService schreiben und wollt mal fragen was mir fehlt bzw. ich umbauen müsste von meinen bisherigen erstellten codes.. Getter/Setter methoden hab ich erstellt wie auch die Stubs und eine services.xml:
[XML]
services.xml:
<service>
<parameter name="ServiceClass"
locked="false">CDManager</parameter>
<operation name="holeCD">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="fuegeCDhinzu">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="holeAlleISBN">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="holeCDProKategorie">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="initialisiereCDManager">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="schliesseCDManager">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
[/XML]
Also ich wollt mir einen WebService schreiben und wollt mal fragen was mir fehlt bzw. ich umbauen müsste von meinen bisherigen erstellten codes.. Getter/Setter methoden hab ich erstellt wie auch die Stubs und eine services.xml:
[XML]
services.xml:
<service>
<parameter name="ServiceClass"
locked="false">CDManager</parameter>
<operation name="holeCD">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="fuegeCDhinzu">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="holeAlleISBN">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="holeCDProKategorie">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="initialisiereCDManager">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
<operation name="schliesseCDManager">
<messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
</operation>
</service>
[/XML]
Java:
CD.java:
import java.io.Serializable;
public class CD implements Serializable {
private String titel;
private String isbn;
private String autor;
private String kategorie;
public String getTitel() {
return titel;
}
public void setTitel(String titel) {
this.titel = titel;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public String getAutor() {
return autor;
}
public void setAutor(String autor) {
this.autor = autor;
}
public String getKategorie() {
return kategorie;
}
public void setKategorie(String kategorie) {
this.kategorie = kategorie;
}
}
Java:
CDInterface.java:
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface CDInterface extends Remote {
CD holeCD(String isbn) throws RemoteException;
void fuegeCDhinzu(CD input) throws RemoteException;
String[] holeAlleISBN() throws RemoteException;
CD[] holeCDProKategorie(String kategorie) throws RemoteException;
void initialisiereCDManager() throws RemoteException;
void schliesseCDManager() throws RemoteException;
}
Java:
CDManager.java:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
import java.util.ArrayList;
import java.util.Scanner;
public class CDManager extends UnicastRemoteObject implements CDInterface {
ArrayList<CD> cds = new ArrayList<CD>();
protected CDManager() throws RemoteException {
super();
this.initialisiereCDManager();
}
//Zeige CD
public CD holeCD(String isbn) throws RemoteException {
int i;
for(i = 0; i < cds.size(); i++) {
if(cds.get(i).isbn.equals(isbn))
return cds.get(i);
}
return null;
}
//CD hinzufügen
public void fuegeCDhinzu(CD input)throws RemoteException {
cds.add(input);
}
//Zeige alle ISBN
public String[] holeAlleISBN() throws RemoteException {
String[] tmp = new String[cds.size()];
for(int i=0; i < cds.size(); i++){
tmp[i] = cds.get(i).isbn;
}
return tmp;
}
//Zeige alle CDs aus der Kategorie
public CD[] holeCDProKategorie(String kategorie) throws RemoteException {
int i, j = 0;
for(i = 0; i < cds.size(); i++) {
if(cds.get(i).kategorie.equals(kategorie))
j++;
}
CD[] tmp = new CD[j];
j = 0;
for(i = 0; i < tmp.length; i++) {
if(cds.get(i).kategorie.equals(kategorie))
tmp[j++] = cds.get(i);
}
return tmp;
}
//CDManager initialisieren
public void initialisiereCDManager() throws RemoteException {
File txtDat = new File("cd.txt");
Scanner scanner = null;
System.out.println(txtDat.getAbsolutePath());
System.out.println(txtDat.exists());
try {
scanner = new Scanner(txtDat);
} catch (FileNotFoundException e){
System.out.println("Die Textdatei cd.txt wurde nicht gefunden.\n");
System.exit(0);
}
while(scanner.hasNext()){
String tmp = scanner.nextLine();
String[] varAuswahl = tmp.split(";");
CD tmpCD = new CD();
tmpCD.autor = varAuswahl[0];
tmpCD.isbn = varAuswahl[1];
tmpCD.kategorie = varAuswahl[2];
tmpCD.titel = varAuswahl[3];
cds.add(tmpCD);
}
}
//CDManager schliessen
public void schliesseCDManager() throws RemoteException {
File newTxtDat = new File("cd.txt");
String zeile="";
for (int i=0; i < cds.size(); i++){
CD tmpCD = cds.get(i);
zeile = zeile + tmpCD.autor + ";" + tmpCD.isbn + ";" + tmpCD.kategorie + ";" + tmpCD.titel + "\n";
}
try {
FileWriter fWriter = new FileWriter(newTxtDat);
BufferedWriter buffWriter = new BufferedWriter(fWriter);
buffWriter.write(zeile);
buffWriter.close();
} catch (IOException e){
System.out.println("Abgefangen: " + e) ;
}
}
}
Java:
Client.java:
import java.net.MalformedURLException;
import java.rmi.Naming;
import java.rmi.NotBoundException;
import java.rmi.RemoteException;
import java.util.Arrays;
import java.util.Scanner;
public class Client {
/**
* @param args
* @throws NotBoundException
* @throws RemoteException
* @throws MalformedURLException
*/
public static void main(String[] args) throws MalformedURLException, RemoteException, NotBoundException {
String name="//localhost/CDInterface"; //dies entfernen??
CDInterface service=(CDInterface)Naming.lookup(name); // dies auch??
while(true){
System.out.println("Das CD-Verwaltungsprogramm: ");
System.out.println("----------------------------");
System.out.println("Folgende Auswahl steht Ihnen zur Verfügung: ");
System.out.println("1 - Ich möchte eine neue CD hinzufügen.");
System.out.println("2 - Zeige alle ISBN Nummern an.");
System.out.println("3 - Zeige alle CDs aus derselben Kategorie an.");
System.out.println("4 - Zeige alle CDs an.");
System.out.println("5 - Ich möchte das Programm beenden.");
Scanner scanner = new Scanner(System.in);
String wahl = scanner.next();
if(wahl.equals("1")){
CD neueCD = new CD();
System.out.println("Geben Sie den Titel der CD ein: ");
neueCD.titel = scanner.next();
System.out.println("Geben Sie die ISBN Nummer der CD ein: ");
neueCD.isbn = scanner.next();
System.out.println("Geben Sie den Autor der CD ein: ");
neueCD.autor = scanner.next();
System.out.println("Geben Sie die Kategorie ein: ");
neueCD.kategorie = scanner.next();
service.fuegeCDhinzu(neueCD);
}
if(wahl.equals("2")){
System.out.println("Folgende ISBN Nummern sind eingetragen: ");
String[] tmp = service.holeAlleISBN();
for(int i=0; i < tmp.length; i++){
System.out.println(tmp[i]);
}
}
if(wahl.equals("3")){
System.out.println("Geben Sie eine Kategorie ein:");
String katCD = scanner.next();
int j=0;
CD[] tmp = new CD[j];
System.out.println(tmp.length);
tmp = service.holeCDProKategorie(katCD);
System.out.println("titel\n isbn\n autor\n kategorie\n");
for(int i=0; i < tmp.length; i++){
CD holeCdKat = tmp[i];
System.out.print(holeCdKat.titel + "\t");
System.out.print(holeCdKat.isbn + "\t");
System.out.print(holeCdKat.autor + "\t");
System.out.print(holeCdKat.kategorie + "\t");
System.out.println();
}
}
if(wahl.equals("4")){
System.out.println("Gebe eine ISBN Nummer ein: ");
String isbnCD = scanner.next();
CD tmp = service.holeCD(isbnCD);
System.out.println(tmp);
}
if(wahl.equals("5")){
service.schliesseCDManager();
System.out.println("Das Programm wird beendet.\n");
System.exit(0);
}
}
}
}