Dringend: WebService Select Statement aus xml Datei

Status
Nicht offen für weitere Antworten.
W

Webservices

Gast
Hi,

habe ein Problem: Ich will ein Webservice entwickeln, dass Select Anweisungen aus einer xml Datei lädt und diese auf der Client Seite auf dem Bildschirm ausgibt.

Habe folgendes zusammgestellt jedoch klappt es irgendwie nicht :.....

Im Ordner des Services "Server" befindet sich folgendes:
Select Datei: Select.java
package meinpackage;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;


public class Select
{
public static void setSelect(String sSql)
{
String DbDrv = "oracle.jdbc.driver.OracleDriver",
DbUrl = "jdbc:eek:racle:thin:mad:localhost:1521:xe",
Table = "Employees",
Usr = "hr",
Pwd = "system";

//String help = "";

//wenn keine Angabe über die Datenbank gemacht wird, soll keine Verbindung
//zur Datenbank hergestellt werden
if (null != DbDrv && 0 < DbDrv.length() &&
null != DbUrl && 0 < DbUrl.length() &&
null != Table && 0 < Table.length() )
{
Connection conn = null;
Statement stmt = null;

//help = Sql;
try {
ApplicationContext appCtx = new ClassPathXmlApplicationContext(new String[] {"meinpackage/applicationContext.xml"});

Class.forName( DbDrv );
conn = DriverManager.getConnection( DbUrl, Usr, Pwd );

SqlStatements statm = (SqlStatements)appCtx.getBean(sSql);
sSql = statm.getStatement();

//Es wird ein Objekt erstellt, um Sql Statements an die Datanbank zu senden
stmt = conn.createStatement();
stmt.executeQuery( sSql );

//schließen der Verbindung sowie des Statements ...
conn.close();
stmt.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}

}
}[/code]

die SqlStatemnts getter und setter:
SqlStatements.java
Code:
package meinpackage;

import org.springframework.beans.factory.BeanNameAware;

public class SqlStatements implements BeanNameAware {
	
	private String statement = null;
	private long id = 0;
	private String name = null;
	
	public long getId() {
		return id;
	}
	
	public void setId(long id) {
		this.id = id;
	}
	
	public String getStatement() {
		return statement;
	}
	
	public void setStatement(String statement) {
		this.statement = statement;
	}
	
	public void setBeanName(String name) {
		this.name = name;	
	}
	
	public String getName() {
		return name;
	}
}

und zuletzt die xml Datei:
applicationContex.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>	

	<bean id="statm1" class="meinpackage.SqlStatements">
		<property name="id" value="1"/>
		<property name="statement" value="Select * From employees"/>
	</bean>

	<bean id="statm2" class="meinpackage.SqlStatements">
		<property name="id" value="2"/>
		<property name="statement" value="Select * From bank"/>
	</bean>
	
	<bean id="statm3" class="meinpackage.SqlStatements">
		<property name="id" value="3"/>
		<property name="statement" value="Select E.EMPLOYEE_ID, E.LAST_NAME, E.FIRST_NAME, B.ZIP, B.KONTO_ID, B.BANK_NAME From EMPLOYEES E, BANK B Where E.EMPLOYEE_ID = B.EMPLOYEE_ID And B.Employee_ID Between 100 and 105"/>
	</bean>

	<bean id="statm4" class="meinpackage.SqlStatements">
		<property name="id" value="4"/>
		<property name="statement" value="Select * From jobs"/>
	</bean>

</beans>

Der Client befindet sich in einem anderen Projekt (Ordner) und ist eine jsp Datei
sieht zur Zeit folgendermaßen aus:
Code:
<!doctype html public "-//w3c//dtd html 4.0 transitional// en" >
<%@ taglib uri="/WEB-INF/taglibs-io.tld" prefix="io" %>

<%@ page import="java.sql.*" isThreadSafe="false" %>


<%
	final String urlLocalhost=
			"http://localhost:8084/WebServiceSpringSelect/services/WebServiceSpringSelect";
	
	String url   = request.getParameter("url");
	String DbDrv = request.getParameter("DbDrv");
	String DbUrl = request.getParameter("DbUrl");
	String Usr   = request.getParameter("Usr");
	String Pwd   = request.getParameter("Pwd");
	String Table = request.getParameter("Table");
	String Sql   = request.getParameter("Sql");
	
	url   = (null != url)   ? url.trim(): urlLocalhost;
	DbDrv = (null != DbDrv) ? DbDrv.trim(): "oracle.jdbc.driver.OracleDriver";
	DbUrl = (null != DbUrl) ? DbUrl.trim(): "jdbc:oracle:thin:@localhost:1521:xe";
	Usr   = (null != Usr)   ? Usr.trim(): "hr";
	Pwd   = (null != Pwd)   ? Pwd.trim(): "system";
	Table = (null != Table) ? Table.trim(): "Employees";
	Sql   = (null != Sql)   ? Sql.trim(): "";
%>

<html> 
<head> <title> Web Service Client Select Database </title></head>
<body>
<h2> Web Service Client Select Database </h2>

<form method="post"><pre>
Endpoint-Url   :<input type="text"     name="url"    value='<%= url %>' size=80>
Db- Treiber    :<input type="text"     name="DbDrv"  value='<%= DbDrv %>' size=80>
Db- Url        :<input type="text"     name="DbUrl"  value='<%= DbUrl %>' size=80>
Nutzer         :<input type="text"     name="Usr"    value='<%= Usr %>' size=80>
Kennwort       :<input type="password" name="Pwd"    value='<%= Pwd %>' size=80>
Tabellenname   :<input type="text"     name="Table"  value='<%= Table %>' size=80>
Sql- Kommando  :<input type="text"     name="Sql"    value='<%= Sql %>' size=80>
               (nach Änderung anderer Parameter muss SQL-Kommando gelöscht werden)

	           <input type="submit"   name="submit" value="Ausgabe">
</pre></form>


<h3><hr>setSelect("<%= Sql %>") -- &
<% out.flush(); %>
<io:soap url="<%= url %>" SOAPAction="" >
	<io:body>
		<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
			<SOAP-ENV:Body>
				<m:setSelect xmlns:m="http://meinpackage">
					<in0><%= Sql %></in0>
				</m:setSelect>
			</SOAP-ENV:Body>
		</SOAP-ENV:Envelope>
	</io:body>
</io:soap>
</hr></h3>

<% 
	if (request.getParameterNames().hasMoreElements() == true
			&& null != DbDrv && 0 < DbDrv.length()
			&& null != DbUrl && 0 < DbUrl.length()            )
	{
		Connection conn = null;
		Statement  stmt = null;
		ResultSet  rs   = null;
	
		
		try 
		{
			Class.forName( DbDrv );
			conn = DriverManager.getConnection( DbUrl, Usr, Pwd );
			stmt = conn.createStatement();
     		
				
			rs= stmt.executeQuery( Sql );
			ResultSetMetaData rsmd = rs.getMetaData();
			int n = rsmd.getColumnCount();
			out.println("<table border=1 cellspacing=0><tr>");
			for (int i=1; i<=n; i++)		// Achtung: Erste Spalte mit 1 statt 0
				out.println("<th>" + rsmd.getColumnName(i) + "</th>");
			while (rs.next())
			{
				out.println( "</tr><tr>" );	// Somit untereinander ausgegeben	
				for(int i=1; i<=n; i++)		// Achtung: Erste Spalte mit 1 statt 0
					out.println("<td>" + rs.getString(i) + "</td>");
			}
			out.println("</tr></table>");
		}
		finally {
			try { if(null != rs)   rs.close(); } catch (Exception ex) {}
			try { if(null != stmt) stmt.close(); } catch (Exception ex) {}
			try { if(null != conn)   conn.close(); } catch (Exception ex) {}
		}
	}
%>

</body>
</html>

Brauche wirklich dringend Hilfe ...
 
W

Webservices

Gast
nochmal genauer:
Also es soll bzw. wird eins von den vier Statements ausgesucht die in der Konfigurationsdatei enthalten sind...

z.B will der Client statm1 ausführen so wird hier auf den Service "Server" zugegriffen, hier wird dann dieses Statement von der xml Datei hinausgeholt und unter sSql hinterlegt.

Nun folgendes Problem:
Wie kann ich nun diese Varibale sSql in meinen Client laden damit diese Select Anweisung ausgeführt werden kann, dass somit die gewünschte Tabelle auf dem Bildschirm zu sehen ist...?
Bin schon am verzweifeln da nichts klappt was ich auch ausprobiere
 
W

Webservices

Gast
hi,

kann denn hier niemand helfen bzw. einen Tipp geben wie man das ganze realisieren könnte?

Danke...
 
W

Webservices

Gast
Also die Client Seite wird im Browser aufgerufen, es ist eine JSP...

Ich realisiere die Datenbankanbindung mit JDBC dazu kann ich auch eine Methode schreiben das ist alles kein Problem.
Nun zum Problem: Das Problem hierbei liegt in der Darstellung der Tabelle, theoretisch müsste ich die Ausgabe an sich auch erstmal im Service programmieren und an den Client per SOAP weiterleiten, wie ich das verstehe ..?!

Ich stelle mir das so vor:
1. Client gibt gewünschten Statementnamen ein
2. Im Service wird der gewünschte SqlStatement rausgeholt
3. Darstellung der Tabelle auf der ClientSeite

Die ersten zwei Punkte habe ich schon abgearbeitet im 3. Punkt liegt das Problem wie ich die Tabelle auf der Client Seite sichtbar machen kann?

Kann hier jemand behilflich sein?!
 

SnooP

Top Contributor
Sehr heißer Ansatz! - Du hast z.B. fünf unterschiedliche SQL-Statements, denen du Namen gibst, dessen Anfrage du von einem Webservice erledigen lässt... je nach Namen wird das SQL an den Client geliefert, der dann nix besseres zu tun hat, als via jdbc und dem String die Daten zu holen...

1. Wahnsinn.
2. Wo ist das Problem mit der Darstellung? Du bekommst ja numal nen Resultset zurück... also stelle es einfach da - du hast von JSP geredet? JSTL wäre da ne schnelle Vorgehensweise...

3. Aaaber: du solltest dir nochmal überlegen, ob das ganze so doll ist ;) - generell würde ich von dem Webservice erwarten, dass der mir die direkt Daten liefert und nicht erst noch nen sql-string über den ich dann die Daten hole.
 
W

Webservices

Gast
hi,

habe nun mitbekommen das man das ganze irgendwie durch eine csv datei realisieren kann...

Man könnte so vorgehen, dass der Service die csv Datei anliegt und in den Speicher (Buffer) hinterlegt und auf der Clientseite, dass ganze per JSP darstellen lassen...

Ich würde nun gerne erfahren, wie ich auf der JSP Seite ( Client Seite ) die csv aus dem Speicher rausladen kann ...?!
 

SnooP

Top Contributor
Immer noch: ich bezweifel die Sinnhaftigkeit des ganzen Vorgehens... der Webservice kann dir doch die Daten in seinem XML mitschicken! Wenn er das nicht macht, sondern stattdessen irgendwo die Daten speichert... joah prima... dann sollte der client halt wissen, wo er die Suchen soll - ist aber auch blödsinnig ;)

geht es vielleicht darum weniger Datenverkehr zu erzeugen? Warum dann überhaupt den Umweg über den Webservice?
 
W

Webservices

Gast
Also der Umweg über Webservices ist halt so vorgeschrieben das ich, dass mal so realisieren soll...

ja wie kann ich das denn per xml dem client zu senden ...?
 

SnooP

Top Contributor
Was sind denn das für Daten? ... der Webservice kann doch einfach via JDBC oder was auch immer die Daten aus der DB holen und in ein ensprechendes selbsterzeugtes Objekt mappen... dieses kann via complex-type oder als Bean direkt von dem Webservice zurückgegeben werden - fertig ist. Siehe dafür: gutes Buch zum Thema Webservices.
 
W

Webservices

Gast
ja was für ein Buch kannst du mir empfehlen hierfür ... die Datenbankanbindung erfolgt auch über JDBC und es wird auch eine Datei erzeugt mit der Endung csv diese wiederum vom Client ausgeführt wird...
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Wo ist mein Fehler in der Methode DRINGEND Allgemeine Java-Themen 9
S Probleme mit meinem MacBook Pro DRINGEND HILFE erbeten! Allgemeine Java-Themen 17
S Java USB dringend Hilfe! Allgemeine Java-Themen 6
I Dringend nachhilfe in programmieren gesucht!!!!!!!! Allgemeine Java-Themen 1
I Dringend nachhilfe in programmieren in mannheim gesucht!!!!! Allgemeine Java-Themen 3
B Dringend Hilfe gesucht für Struktogramm Allgemeine Java-Themen 11
I Studium - bitte dringend helfen !!! Allgemeine Java-Themen 17
Q Dringend Hilfe Allgemeine Java-Themen 6
data89 Bilder mit Java prüfen - suche dringend Hilfe Allgemeine Java-Themen 8
N Brauche dringend Hilfe! Allgemeine Java-Themen 7
S brauche dringend help bei einem projekt (Römisch-dezimal) Allgemeine Java-Themen 3
V Brauche dringend Hilfe. Object-handling Allgemeine Java-Themen 4
H Dringend: Jasper Reports - Zusammenfügen von PDFs ? Allgemeine Java-Themen 4
G Text cursorgenau einfügen [ehemals hilfe ... dringend] Allgemeine Java-Themen 7
D wie gliedere ich dieses programm am besten? dringend! Allgemeine Java-Themen 3
T Fehler in code/dringend Allgemeine Java-Themen 6
A Probleme mit CommAPI! Dringend! Allgemeine Java-Themen 5
S Dringend Hilfe benötigt Allgemeine Java-Themen 12
A JAVA-Projekt - suche dringend partner/members Allgemeine Java-Themen 9
S dringend-verzeichnis von festplatte einlesen Allgemeine Java-Themen 9
S Vielleicht OT aber dringend: Java Editor JAMBA gesucht Allgemeine Java-Themen 2
M Webservice timeout bei Ausführung der .jar Allgemeine Java-Themen 3
OnDemand Webservice Triggern Allgemeine Java-Themen 4
F Kennt jemand das Java WebService Tutorial der Uni Hannover? Allgemeine Java-Themen 2
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
P XML Dokumente von JDOM an ein WebService senden! Allgemeine Java-Themen 2
I REST Webservice getFile Allgemeine Java-Themen 2
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
P CXF 3.0.1 WebService- Client Allgemeine Java-Themen 0
E Webservice zur Konvertierung IBAN/BIC -> Bank Name Allgemeine Java-Themen 1
S Webservice-Tutorial Allgemeine Java-Themen 3
U Eclipse Java Projekt - Webservice einbinden Allgemeine Java-Themen 7
C Webservice: XML Parameter übergabe. Allgemeine Java-Themen 7
Y WebService erstellen Allgemeine Java-Themen 2
C Datei kodiert zu Webservice senden Allgemeine Java-Themen 9
G WebService Exception Allgemeine Java-Themen 3
M Client für einen Webservice erstellen (ONVIF) Allgemeine Java-Themen 3
M Webservice mit Axis2 und Eclipse - Error Allgemeine Java-Themen 2
D Kein Zugriff auf WebService ausser localhost Allgemeine Java-Themen 4
M Webservice in Java erstellen Allgemeine Java-Themen 6
T Webservice definieren und andere Webservice aufrufen Allgemeine Java-Themen 8
B webservice stub enthält nicht genug funktionen Allgemeine Java-Themen 2
R Konzept eines Software-Rollout/Synchronisation via WebService Allgemeine Java-Themen 5
P Schnittstelle über Webservice SOAP Allgemeine Java-Themen 11
G [Reflection + WebService] Methodenaufruf an einem Proxy Allgemeine Java-Themen 11
J HashMap mit Webservice realisierbar? Allgemeine Java-Themen 4
T Datenbankanbindung per WebService Allgemeine Java-Themen 4
S allgemeine Datenbankschnittstelle für Webservice Allgemeine Java-Themen 72
S Webservice --> wie ? Allgemeine Java-Themen 9
G Problemem mit <nested:select . Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben