Hallo zusammen,
eins vorweg, ich habe weder Erfahrung mit der Erstellung von Guis noch mit dem Nutzen von Webservices. Nichts desto trotz habe ich die Aufgabe bekommen den Webservices von Amazon zu nutzen und einen Client zu erstellen der in der Produktdatenbank von Amazon nach Produkten (in meinem Fall hatte ich an Bücher gedacht) sucht.
Ich habe bisher mit wsimport den passenden Stub für diese WSDL erzeugt:
http://ecs.amazonaws.com/AWSECommerceService/AWSECommerceService.wsdl
Nun versuche ich den passenden Client zu realisieren um auf den Client zuzugreifen:
Ich bin mir aber erhlichgesagt noch nicht sicher ob dies auch so klappt. aber nun gut.
Mit Hilfe des Eclipse Plugins Jigloo habe ich die folgende Oberfläsche erstellt:
Ich habe leider von der Gui Entwicklung null Ahnung und könnte etwas hilfe gebrauchen um die Funktionalitäten mit der Gui zu verbinden.
Also beispielsweise habe ich das TextField das als mein Eingabefeld für den Such-String genutzt werden soll. Nur wie verbinde ich dies mit den Funktionen ?
Der Search-Button soll nachtürlich die Anfrage an den Webservices stellen.
Als Ausgabe habe ich bisher eine Textarea festgelegt. Ich bin mir bei der Ausgabe noch nicht wirklich sicher ob ich das richtige Format für die Ausgabe gewählt habe. Vielleicht wäre eine Liste auch besser.
Ausgegeben werden sollten unter anderem der Autor, die ISBN, Preis, Verlag. Also einige Grundfunktionen und wenn ich etwas irgendwie schaffe auch das passende Vorschaubild.
Ich hoffe das ihr mir ein wenig dabei Helfen könnt. Ich bin für jeden Tipp dankbar !
Vielen Dank im Voraus.
Mit freundlichen Grüßen
BlazZ
eins vorweg, ich habe weder Erfahrung mit der Erstellung von Guis noch mit dem Nutzen von Webservices. Nichts desto trotz habe ich die Aufgabe bekommen den Webservices von Amazon zu nutzen und einen Client zu erstellen der in der Produktdatenbank von Amazon nach Produkten (in meinem Fall hatte ich an Bücher gedacht) sucht.
Ich habe bisher mit wsimport den passenden Stub für diese WSDL erzeugt:
http://ecs.amazonaws.com/AWSECommerceService/AWSECommerceService.wsdl
Nun versuche ich den passenden Client zu realisieren um auf den Client zuzugreifen:
Ich bin mir aber erhlichgesagt noch nicht sicher ob dies auch so klappt. aber nun gut.
Code:
import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import com.amazon.webservices.awsecommerceservice._2009_11_01.*;
public class AmazonSearch {
public static void search(){
String keyword = "Verteilte Anwendungen";
try{
AWSECommerceServiceStub stub= new AWSECommerceServiceStub();
AWSECommerceServiceStub.ItemSearch iss = new AWSECommerceServiceStub.ItemSearch();
AWSECommerceServiceStub.ItemSearch_type0 is = new AWSECommerceServiceStub.ItemSearch_type0();
String awsAccessKeyID = "AKIAJYZSMOJOBACNCVRQ";
is.setAWSAccessKeyId(awsAccessKeyID);
AWSECommerceServiceStub.ItemSearchRequest req = new AWSECommerceServiceStub.ItemSearchRequest();
req.setKeywords(keyword);
req.setSearchIndex("Books");
//req.setAuthor("Abts");
is.setShared(req);
iss.setItemSearch(is);
AWSECommerceServiceStub.ItemSearchResponse resp = stub.ItemSearch(iss);
}catch (AxisFault e){
System.out.println(e);
}
catch (RemoteException e){
System.out.print(e);
}
}
}
Mit Hilfe des Eclipse Plugins Jigloo habe ich die folgende Oberfläsche erstellt:
Code:
package console;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
import com.cloudgarden.resource.SWTResourceManager;
public class newConsole extends org.eclipse.swt.widgets.Composite {
private Menu menu1;
private MenuItem aboutMenuItem;
private Menu helpMenu;
private MenuItem helpMenuItem;
private List output;
private Combo combo1;
private Text SearchField;
private Label searchbg;
private Label logo;
private Button Search;
private MenuItem exitMenuItem;
private Menu fileMenu;
private MenuItem fileMenuItem;
{
//Register as a resource user - SWTResourceManager will
//handle the obtaining and disposing of resources
SWTResourceManager.registerResourceUser(this);
}
public newConsole(Composite parent, int style) {
super(parent, style);
initGUI();
}
private void initGUI() {
FormData outputLData = new FormData();
outputLData.left = new FormAttachment(0, 1000, 27);
outputLData.top = new FormAttachment(0, 1000, 184);
outputLData.width = 756;
outputLData.height = 393;
output.setLayoutData(outputLData);
FormData combo1LData = new FormData();
combo1LData.left = new FormAttachment(0, 1000, 109);
combo1LData.top = new FormAttachment(0, 1000, 103);
combo1LData.width = 149;
combo1LData.height = 21;
combo1.setLayoutData(combo1LData);
FormData SearchFieldLData = new FormData();
SearchFieldLData.left = new FormAttachment(0, 1000, 310);
SearchFieldLData.top = new FormAttachment(0, 1000, 103);
SearchFieldLData.width = 444;
SearchFieldLData.height = 20;
SearchField.setLayoutData(SearchFieldLData);
FormData searchbgLData = new FormData();
searchbgLData.left = new FormAttachment(0, 1000, 27);
searchbgLData.top = new FormAttachment(0, 1000, 93);
searchbgLData.width = 757;
searchbgLData.height = 39;
searchbg.setLayoutData(searchbgLData);
FormData logoLData = new FormData();
logoLData.left = new FormAttachment(0, 1000, 592);
logoLData.top = new FormAttachment(0, 1000, 12);
logoLData.width = 194;
logoLData.height = 81;
logo.setLayoutData(logoLData);
FormData SearchLData = new FormData();
SearchLData.left = new FormAttachment(0, 1000, 704);
SearchLData.top = new FormAttachment(0, 1000, 144);
SearchLData.width = 56;
SearchLData.height = 22;
Search.setLayoutData(SearchLData);
try {
this.setBackground(SWTResourceManager.getColor(255, 255, 255));
FormLayout thisLayout = new FormLayout();
this.setLayout(thisLayout);
this.setFont(SWTResourceManager.getFont("Arial", 8, 0, false, false));
{
output = new List(this, SWT.MULTI);
output.setBackground(SWTResourceManager.getColor(192, 192, 192));
}
{
combo1 = new Combo(this, SWT.NONE);
}
{
SearchField = new Text(this, SWT.NONE);
}
{
searchbg = new Label(this, SWT.NONE);
searchbg.setImage(SWTResourceManager.getImage("amazon_suche.JPG"));
}
{
logo = new Label(this, SWT.NONE);
logo.setText("logo");
logo.setImage(SWTResourceManager.getImage("webservices.JPG"));
}
{
Search = new Button(this, SWT.PUSH | SWT.CENTER);
Search.setText("Search");
}
{
menu1 = new Menu(getShell(), SWT.BAR);
getShell().setMenuBar(menu1);
{
fileMenuItem = new MenuItem(menu1, SWT.CASCADE);
fileMenuItem.setText("File");
{
fileMenu = new Menu(fileMenuItem);
{
exitMenuItem = new MenuItem(fileMenu, SWT.CASCADE);
exitMenuItem.setText("Exit");
}
fileMenuItem.setMenu(fileMenu);
}
}
{
helpMenuItem = new MenuItem(menu1, SWT.CASCADE);
helpMenuItem.setText("Help");
{
helpMenu = new Menu(helpMenuItem);
{
aboutMenuItem = new MenuItem(helpMenu, SWT.CASCADE);
aboutMenuItem.setText("About");
}
helpMenuItem.setMenu(helpMenu);
}
}
}
this.layout();
pack();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
Display display = Display.getDefault();
Shell shell = new Shell(display);
newConsole inst = new newConsole(shell, SWT.NULL);
Point size = inst.getSize();
shell.setLayout(new FillLayout());
shell.layout();
if(size.x == 0 && size.y == 0) {
inst.pack();
shell.pack();
} else {
Rectangle shellBounds = shell.computeTrim(0, 0, size.x, size.y);
shell.setSize(shellBounds.width, shellBounds.height);
}
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
}
}
Ich habe leider von der Gui Entwicklung null Ahnung und könnte etwas hilfe gebrauchen um die Funktionalitäten mit der Gui zu verbinden.
Also beispielsweise habe ich das TextField das als mein Eingabefeld für den Such-String genutzt werden soll. Nur wie verbinde ich dies mit den Funktionen ?
Der Search-Button soll nachtürlich die Anfrage an den Webservices stellen.
Als Ausgabe habe ich bisher eine Textarea festgelegt. Ich bin mir bei der Ausgabe noch nicht wirklich sicher ob ich das richtige Format für die Ausgabe gewählt habe. Vielleicht wäre eine Liste auch besser.
Ausgegeben werden sollten unter anderem der Autor, die ISBN, Preis, Verlag. Also einige Grundfunktionen und wenn ich etwas irgendwie schaffe auch das passende Vorschaubild.
Ich hoffe das ihr mir ein wenig dabei Helfen könnt. Ich bin für jeden Tipp dankbar !
Vielen Dank im Voraus.
Mit freundlichen Grüßen
BlazZ
Zuletzt bearbeitet: