TeamBob Geschrieben 17. Februar 2009 Teilen Geschrieben 17. Februar 2009 Hi Also ich glaube einfach mal das es sinnvoller ist ein Thema über Webservice allgemein zu machen, anstatt die ganzen Probleme einzeln zu posten. Ich habe mir schon verschiedene Tutorial durchgelesen aber nirgends wir sowas was ich mache genau gezeigt. Deswegen hoffe das ihr mir weiterhelfen könnt. Danke Zur Geschicht: Ich soll ein WebService zu einen Projekt entwickeln, was Usern ermöglicht einen Suchbegriff einzugeben und Dokumente nach diesen Suchbegriff zu durchsuchen und eine Liste der Dokumente die dieses Wort enthalten auszugeben. Vorgehen: In Eclipse habe ich zuerst einmal eine neue Klasse WebService erstellt, die dieses Vorhaben dann ermöglichen soll. Die Suchfunktion liegt bereits fertig in ein anderes Package. Diese rufe ich dann bloss noch auf in meinen WebService. Unten findet ihr die ganzen Quelltexte zu der Suchfunktion und dem Webservice. Ich habe dann das SoapUI Plugin für Eclipse als WebTester für die ganze Sache genommen und den JBoss als Server. Ich kann den WebService deployen und vom Jboss aus starten und mit SoapUI dann unter http://localhost:9090/......?wsdl testen. Problem: Der User soll ja Suchbebegriffe eingeben können und soll dann eine liste der Dokumente ausgegeben bekommen. Ich weis jedoch nicht wie ich jetzt weiter verfahren soll. Muss ich einen Client bauen? Wie soll der aussehen? Wie kann ich es ermöglichen das der User eine Eingabe macht und damit dann die Searchfunktion gestartet wird? Wie genau kann ich alles als Liste wiedergeben? Ich hoffe ihr könnt mir helfen, weil ich gerade echt nicht weis wie ich fortfahren soll? Quelltexte: Die SearchFunktion @SuppressWarnings("unchecked") public List<Document> searchInDocumentFieldsForSimpleSearch( final String and_search, final Long userId) { final List<Long> documentIds = new ArrayList<Long>(0); final List<Long> visibledocumentsForUser_ids = new ArrayList<Long>(0); final List<Document> documents = new ArrayList<Document>(0); final Session session = sf.openSession(); final FullTextSession fullTextSession = Search .createFullTextSession(session); // determine visible documents by user visibledocumentsForUser_ids.addAll(dfl .getVisibleDocumentsByUser(userId)); final String newSearch = and_search.trim(); final Query luceneQuery = createInputFieldQuery(newSearch, BooleanClause.Occur.MUST, false); final org.hibernate.Query fullTextQuery = fullTextSession .createFullTextQuery(luceneQuery, Document.class); final Iterator it = fullTextQuery.iterate(); // while (it.hasNext()) { // final DocumentField df = (DocumentField) it.next(); // if (df != null) { // if (!documentIds.contains(df.getDocumentId()) // && (visibledocumentsForUser_ids // .contains(df.getDocumentId()))) { // final Document dd = df.getDocument(); // if(dd!=null){ // if(Hibernate.isInitialized(dd)==false){ // Hibernate.initialize(dd); // } // documentIds.add(dd.getId()); // documents.add(dd); // } // } // } // } while (it.hasNext()) { final Document d = (Document) it.next(); if (d != null) { if (!documentIds.contains(d.getId()) && (visibledocumentsForUser_ids.contains(d.getId()))) { documentIds.add(d.getId()); documents.add(d); } } } /* * visibledocumentsForUser_ids.addAll(dfl * .getVisibleDocumentsByUser(userId)); * * Iterator is = documentFields.iterator(); while (is.hasNext()) { * DocumentField df = (DocumentField) is.next(); if(df!=null){ Document * dd = df.getDocument(); dd.getAuthors(); if * (!documentIds.contains(dd.getId()) && * (visibledocumentsForUser_ids.contains(dd.getId()))) { * * documentIds.add(dd.getId()); documents.add(dd); // System.out // * .println("###### Document " + dd.getName() + " " // + * dd.getCreationDate() + " " // + dd.getModificationDate()); // hier * implemantation für die categorien anzeige ?? } } } */ return documents; } /* * (non-Javadoc) * * @seede.search.SearchLocal# * getAllDocumentsByUserCommunitiesAndByReleaseStatus(java.lang.Long) */ Der WebService package web.service; import javax.ejb.EJB; import javax.jws.WebMethod; import javax.jws.WebService; import javax.naming.InitialContext; import ejb.search.*; @WebService(name = "SearchService", serviceName = "SearchService", targetNamespace = "http://www.test.de") public class WebServiceSearch { @EJB SearchLocal searchBean; SearchLocal getSearchBean() { if (searchBean == null) { try { searchBean = (SearchLocal) new InitialContext() .lookup("java:comp/env/ejb/SearchEJB"); } catch (Exception a) { throw new RuntimeException(a); } } return searchBean; } //@WebMethod //public java.util.ArrayList<String> getItems(java.lang.String searchTerm) { // new java.util.ArrayList<String>(); @WebMethod public String searchInDocumentFieldsForSimpleSearch(final String and_search, final Long userId) { return and_search; } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 17. Februar 2009 Teilen Geschrieben 17. Februar 2009 Deine Aufgaben werde ich hier sicherlich nicht machen. Lass doch erstmal das Thema mit dem Zugriff auf Hibernate Search außen vor. Erstelle dir doch mal einen einfachen Webservice der die nichts weiter als "Hello World" zurück liefert. Wenn du dann sowohl Server und Client dafür erstellt hast und auch lauffähig deployed bekommen hast dann kannst du dich an schwere Sachen heran wagen. Also z.B was passiert mit Listen kannst du sie so übertragen oder musst du sie vorher in ein Array umwandeln. Dann solltest du dir auch mal Gedanken zu deinem Design der Webservice Schnittstelle machen. Denn vielleicht wäre es für dich besser einen "Contract-First" Ansatz zu nutzen und nicht wie du es machst eine "Code-First" Ansatz. Für weitere Hilfen wäre es auch Sinnvoll zu erfahren was für Framework die im Webservice Umfeld einsetzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 18. Februar 2009 Autor Teilen Geschrieben 18. Februar 2009 Hi Also ja vielleicht sollte ich die Search sache mal ausdokumentieren. Also wenn ich einfach bloss hello world ausgebe, dann sehen ich ja auch hello world wenn ich alles deploye und lade, aber ich weis nicht wie ich den client dazu programmiere, bzw. wie ich es schaffe das der User eine eingabe macht und diese dann per webservice verarbeitet wird? Also wenn der zum Bsp. seinen namen eingibt und als response hallo.... bekommt.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 18. Februar 2009 Autor Teilen Geschrieben 18. Februar 2009 Hi Also ich habe jetzt in meine WebService einfach mal diese Funktion eingebaut @WebMethod public String sayHello(String name){ return "Hello " + name; Wenn ich das Project jetzt deploye und mit SOAPUI teste und dann als arg. mein name eingeben kommt Hello "mein name" Also habe ich ja schonmal ein request und ein Response die funktionieren. Die frage ist jetzt wie bekomme ich die ganze Sache mit meiner Suchfunktion hin, dass ich ein Suchbegriff eingebe und der ne Datenbank durchsucht und die ergebnise als Liste ausgibt. Ich hoffe ihr könnt mir helfen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 18. Februar 2009 Teilen Geschrieben 18. Februar 2009 Ich denke dein Problem sollte es erstmal nicht weitere komplizierte Methoden einzubinden sondern erstmal dein Hauptproblem zu lösen. Denn du greifst bis jetzt immer nur via SoapUI auf deinen Webservice zu. Das ist aber nicht Ziel der Veranstaltung sondern ein Client soll drauf zugreifen. Du solltest dir jetzt für dein einfaches Beispiel einen Client erstellen der dann den Zugriff ausführt und dir dein Ergebnis liefert. Da ich immer noch nicht weiß was für eine Webservice Runtime du da einsetzt hier mal ein Link zu einer recht einfachen Beschreibung. WebService in Java Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 19. Februar 2009 Autor Teilen Geschrieben 19. Februar 2009 Hi Also jetzt mal zu allen Dingen die ich zur Zeit benutze. Eclipse Ganymede 3.40 plugins: - Web Tool Platform 3.04 - Data Tool Platform 1.61 - Modeling Framework 2.41 - SoapUI JRE 6u12 JDK 1.50 JBoss So wie genau sollte ich den jetzt weiterverfahren in sachen Client bauen? danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 19. Februar 2009 Autor Teilen Geschrieben 19. Februar 2009 Hi Also ich habe jetzt mal das Tut. gemacht was du gepostet hast und habe da eine fehlermeldung. Ich habe die Klasse eingerichtet und wollte dann den server einrichten aber weis nicht so recht wie. Mach ich einfach ein neues package aus und darin eine klasse und nenne die Server? Habe das so gemacht und habe den Quellcode eingeben und das wird rot unterstrichen mit der Fehlermeldung new Calculator(); -->No enclosing instance of type WebServiceSearch is accessible. Must qualify the allocation with an enclosing instance of type WebServiceSearch (e.g. x.new A() where x is an instance of WebServiceSearch) Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 23. Februar 2009 Autor Teilen Geschrieben 23. Februar 2009 Hi Also ich habe jetzt wirkliche fortschritte erzielt. Ich habe jetzt einen WebService erstellt der 2 zahlen addiert und dazu einen Client wodurch man auf ihm zugreifen kann. Jedoch lese ich im Internet sehr viel über einen WebService+Server+Client. Einen Server habe ich bis jetzt noch nicht. Da ich meinen Webservice bis jetzt noch über den JBoss lade und dann kann ich ja mit hilfe des Clients die request usw. durchführen. Könnte mir vielleicht jemand helfen wie ich genau ich einen server aufbauen muss und ob ich überhaupt einen brauche usw. Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 23. Februar 2009 Teilen Geschrieben 23. Februar 2009 Was ist denn JBoss in deinen Augen? Ist das kein Server? Ab du einen Applicationserver wie JBoss nutzt oder einen Servlet Container wie Tomcat ist erstmal egal. Du kannst ab Java 6 wie weiter oben bereits verlinkt auch "ohne" zusätzlichen Server auskommen. Deinen Service musst du aber irgendwie bekannt machen und so zur Verfügung stellen das anderen Teilnehmer auf ihn zugreifen können. Ob du nun einen JBoss einen Tomcat oder die einfache Variante die dir Java 6 zur Verfügung stellt nutzt bleibt dir überlassen. Sollte das nicht dein Ziel sein den Service zur Verfügung zu stellen dann solltest du überlegen ob ein Webservice das richtige Mittel ist. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 23. Februar 2009 Autor Teilen Geschrieben 23. Februar 2009 Hallo Also ich will den Webservice schon ganz normal zur Verfügung stellen und deswegen auch die Frage ob man extra eine Server Klasse oder so programmiernen muss oder nicht? Da ja der Webservice theoretisch so weit ist muss ich nun die eigendliche Funktion reinbringen. Die Suchfunktion an sich ist ja schon eingebunden, jedoch noch nicht der return. Wenn ich die suche starte, dann sollten die gefunden Dokumente als Liste wiedergeben werden, jedoch weis ich nicht ganz genau wie ich das umsetzen soll, und wie ich es ermögliche dann diese Dokumente anzuklicken um sie aufrufen zu könne. Wie kann ich die ganze Sache erstmal einfach testen usw. Danke für eure Hilfe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 23. Februar 2009 Autor Teilen Geschrieben 23. Februar 2009 Ach ja es handelt sich um eine Mysql datenbank Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 23. Februar 2009 Teilen Geschrieben 23. Februar 2009 Ein Server entsteht nicht indem man eine Klasse Server nennt und dort eine Methode startServer implementiert. Ich denke dir würde es gut tun wenn du erstmal einen Schritt zurück machst. Dann schaust du dir an was du gegeben hast und was du alles brauchst um dein Vorhaben umzusetzen. Was sind überhaupt deine Vorgaben? Denn eine Anbindung von Hibernate Search ist doch schon etwas wo man sich etwas mit auseinander setzen muss. Dann noch das Thema Webservices was auch nicht so schnell mal zusammengeklickt ist. Wenn du deine Vorgaben genau kennst dann solltest du dich erstmal an das Schnittstellen Design machen. Ob du jetzt mit einem Code First oder Contract First(wsdl/ Schnittstellenbeschreibung zu erst) Ansatz fährst ist im Grunde egal aber du solltest dir Gedanken machen. Für das Design solltest du dann deine Vorgaben (z.B. Use-Cases) nutzen. Also welche Methoden benötige ich um das georderte Ergebnis zu liefern? Erst wenn deine Schnittstelle definiert ist kannst du dich an das Implementieren des Service Providers und des Clients machen. Denn deine Fragen die du hier stellst haben grundsätzlich erstmal nicht mit Webservices an sich zu tun. Ein Webservice ist nichts anderes als das du eine Methode Remote aufrufst. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 Hi Also ich soll eine Schnittstelle zu einen Programm erstellen das über Webservice (SOAP) bereit gestellt werden soll. Diese Webservice soll das durchsuchen von Mysql datenbanken nach Schlagwörtern ermöglichen und diese gefunden Dokumente dann in einer Liste ausgeben, wo es möglich sein soll diese einzelnen dokumente dann zu öffnen. Die Suchfunktion steht ja schon, jedoch ist mir jetzt nicht ganz klar wie ich die Mysql datenbank durchsuchen soll und die ergebnise dann als lise ausgeben soll. Ich habe bei Jboss schon eien MySql datei eingefügt die diese Sache ermöglichen soll. Das Design spielt erstmal keine Rolle, da ich dafür nicht zuständig bin. Danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 24. Februar 2009 Teilen Geschrieben 24. Februar 2009 Servus, bist Du Softwareentwickler? Hast Du Erfahrung mit Java Webservices, JDBC, Java EE oder Ähnlichem? Wenn nein, bist Du in meinen Augen der Falsche für die Aufgabe, weil Dir die Grundlagen fehlen. Es ist nicht damit getan, im JBoss eine JCA-Konfiguration für die Anbindung einer MySQL einzufügen, Du musst auch an der geeigneten Stelle über JNDI (neues Schlagwort, das Du kennen solltest) diese Connection verwenden können. Erklär mal, was Du an Vorwissen hast, dann kann man sehen, ob es sich lohnt, hier weiterzumachen. Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 Hi Also ich habe eine Dualstudium für Informatik und mache nebenbei eine Ausbildung als Softwareentwickler. Da haben sie mir die Aufgaben gegeben da sie das noch brauchen. Ich habe vorher noch nie richtig mit Webservices gearbeitet. Mit java schon aber deswegen sollte ich mich ja damit auseinandersetzen und brauche eure Hilfe dabei damit ich weiterkomme und das auch lerne. Ich habe jetzt zu der JBoss JCA-Konfiguration noch in meinem Webservice das dazu geschrieben um eine Verbindung aufzubauen zur Datenbank in mysql. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 24. Februar 2009 Teilen Geschrieben 24. Februar 2009 Ich habe jetzt zu der JBoss JCA-Konfiguration noch in meinem Webservice das dazu geschrieben um eine Verbindung aufzubauen zur Datenbank in mysql. Ich kann leider mit Deinen Beschreibungen relativ wenig anfangen. Lass uns doch noch mal einen Schritt zurück gehen. Wie sieht der Aufbau für Dich aus? Du willst einen Web Service, der was tut. Auf welcher Plattform wird der laufen? JBoss? Dann können wir das auch verwenden. Wenn er in Produktion dann nämlich auf einem Tomcat läuft, musst Du wieder schauen, wie Du die JCA-Connection dort integrierst. Mit welchem Framework wirst Du den Web Service schreiben? Axis, JBossWS, ...? Wie soll das Design Deiner Anwendung sein? Du sagst, es gibt einen Suchservice, aber dann sprichst Du davon, dass Du nicht weißt, wie Du auf die Datenbank zugreifst. Was denn? Und solltest Du auf die Datenbank zugreifen müssen, wie möchtest Du das abkapseln? JDBC DAO, Hibernate, JDO, ...? Erst wenn Du diese Themen ausreichend geklärt hast, also ein Konzept für Architektur und Design der Anwendung hast, dann kann man weitermachen. Ansonsten ist es so, wie wenn Du in einem Kfz-Mechaniker Forum auftauchst und fragst, wie Du denn den Motor zerlegst, aber noch nicht weißt, welches Auto Du hast oder ob es vielleicht ein Boot oder ein Fahrrad ist. Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 Also ich benutze Eclipse, JRE 6_12 ; JDK 6_12; Jboss; Lucene; Hibernate und MySql. So ich soll einen Webservice schreiben der eine Suchfunktion ermöglicht womit ich eine Mysql datenbank nach schlagwörtern durchsuchen kann. Das wars jetzt habe ich wie gesagt in meine JBoss deploy ein JCA-Konfiguration hinzugefügt und das hier in meinen Webservie geschrieben um damit zu conecten private static void testDataSource()throws NamingException, SQLException { InitialContext ctx = new InitialContext(); DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/lsedemo"); java.sql.Connection conn = null; java.sql.Statement stmt = null; { try { conn = ((java.sql.Statement) ds).getConnection(); stmt = conn.createStatement(); stmt.execute("Testergebnis"); stmt.close(); stmt = null; conn.close(); conn = null; } catch (SQLException e) { e.printStackTrace(); } finally { if (stmt != null) { try { stmt.close(); } catch (SQLException sqlex) { } stmt = null; } if (conn != null) { try { conn.close(); } catch (SQLException sqlex) { } conn = null; } } } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 24. Februar 2009 Teilen Geschrieben 24. Februar 2009 (bearbeitet) Du nutzt Hibernate was willst du denn nun mit dieser Connection? Das Datenbank Handling übernimmt Hibernate für dich. Deine Aufgabe in diesem Zusammenhang, Hibernate so zu konfigurieren das es die JNDI Source nutzt. Das beste wird es sein wenn du dir eine Aufgabe geben lässt die eher deinen Kenntnissen entspricht. Denn du packst hier Framework Komponenten zusammen die du nicht mal im Ansatz verstanden hast. Das kann so nichts werden. Bearbeitet 24. Februar 2009 von Schiller256 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 Hi Also die Sache ist jetzt so weiter alles gelöst und ich habe das alles gemacht. Jetzt habe ich an meiner Searchmethode gearbeitet und komme jetzt nicht weiter. Wenn ich jetzt das alles mit Jboss deploye dann zeigt er mit ein Fehler an. Ich schätze mal er kommt mit dem umwandeln der Dokumente in eine Arraylist in einer XML Sprache nicht klar oder so... Fehler ERROR [MainDeployer] Could not start deployment: file:/C:/Users/dnuss/Programme/jboss-4.2.3.GA/server/default/tmp/deploy/tmp1844kmm.ear-contents/kmm-ws.war java.lang.IllegalStateException: Cannot build JAXB context at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilder.createJAXBContext(JAXWSMetaDataBuilder.java:955) at org.jboss.ws.metadata.builder.jaxws.JAXWSWebServiceMetaDataBuilder.buildWebServiceMetaData(JAXWSWebServiceMetaDataBuilder.java:156) at org.jboss.ws.metadata.builder.jaxws.JAXWSServerMetaDataBuilder.setupProviderOrWebService(JAXWSServerMetaDataBuilder.java:52) at org.jboss.ws.metadata.builder.jaxws.JAXWSMetaDataBuilderJSE.buildMetaData(JAXWSMetaDataBuilderJSE.java:63) at org.jboss.wsf.stack.jbws.UnifiedMetaDataDeploymentAspect.create(UnifiedMetaDataDeploymentAspect.java:66) at org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl.deploy(DeploymentAspectManagerImpl.java:118) at org.jboss.wsf.container.jboss42.ArchiveDeployerHook.deploy(ArchiveDeployerHook.java:97) at org.jboss.wsf.container.jboss42.DeployerInterceptor.start(DeployerInterceptor.java:90) at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188) at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95) at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) ...... ...... ...... Webservice package web.service; import java.util.List; import javax.ejb.EJB; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.naming.InitialContext; import ejb.search.*; import persistence.hibernate.entities.Document; @WebService(name = "SearchService", serviceName = "SearchService", targetNamespace = "http://www.test.de") @SOAPBinding(style = SOAPBinding.Style.RPC) ////Kommunikation über SOAP prozedurorientiert public class WebServiceSearch { @EJB SearchLocal searchBean; SearchLocal getSearchBean() { if (searchBean == null) { try { searchBean = (SearchLocal) new InitialContext() .lookup("java:comp/env/ejb/SearchEJB"); } catch (Exception a) { throw new RuntimeException(a); } } return searchBean; } //@WebMethod //public java.util.ArrayList<String> getItems(java.lang.String searchTerm) { // new java.util.ArrayList<String>(); @WebMethod public void createIndex () { try { getSearchBean().createIndex(); } catch (Exception e) { e.printStackTrace(); } } @WebMethod public Document[] searchInDocumentFieldsForSimpleSearch(final String and_search, final Long userId) { List<Document> documents= getSearchBean().searchInDocumentFieldsForSimpleSearch(and_search, userId); return documents.toArray(new Document[documents.size()]); } } Das hier ist die Dokument Klasse aber nur der Anfang weil die sehr lang ist... @Entity @Indexed(index = Item.INDEXNAME) @Table(name = "DOCUMENT") @PrimaryKeyJoinColumn(name = "itemid") @OnDelete(action = OnDeleteAction.CASCADE) public class Document extends Item { private static final long serialVersionUID = 4383112294280993163L; @Embeddable static public class NumberingFormat implements Serializable { private static final long serialVersionUID = -6523464405795614043L; private String format; private Integer sequenceId; @Column(name = "format", length = 100, nullable = true) public String getFormat() { return format; } public void setFormat(String format) { this.format = format; } @Column(name = "sequenceId", nullable = true) public Integer getSequenceId() { return sequenceId; } public void setSequenceId(Integer sequenceId) { this.sequenceId = sequenceId; } } private String name; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kingofbrain Geschrieben 24. Februar 2009 Teilen Geschrieben 24. Februar 2009 Servus, ich muss mich leider ausklinken. Meine Zeit reicht nicht aus, um bei Adam und Eva anzufangen und Dir bis zu Hibernate, JDBC, JaxB usw. alles zu erklären. In meinen Augen ist das Grundproblem schon, dass Du Dir keine Gedanken zu dem System an sich machst, sondern einfach ziellos anfängst (Hibernate verwenden wollen und sich eine Connection für JDBC geben lassen). Viel Erfolg! Peter Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 naja es geht doch jetzt bloss um die Fehlermeldung was er für ein problem hat und woran es liegt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 24. Februar 2009 Teilen Geschrieben 24. Februar 2009 Du schreibst das du dir keine Gedanken um das Design der Anwendung machen musst weil das jemand anderes für dich übernimmt. Das ist hier aber eines der Hauptprobleme dir ist die Komplexität deiner Anwendung überhaupt nicht klar. Weder auf Infrastruktur Seite noch in deiner Anwendung selbst. Du versucht hier nach irgendwelchen Tutorials wild Komponenten zusammen zustecken ohne das du ansatzweise verstanden hast was da passiert. Dir fehlen die Grundlagen um solche Aufgaben umsetzen zu können. Grundlagen lernt man aber nicht in dem du wild unterschiedliche Komponenten aneinander reihst und hoffst das es irgendwann läuft. Sondern in dem man Komponente für Komponente einzeln Verstanden hat und sie dann zusammen einsetzen kann. Deine Fehlermeldung hat nichts mit dem List in einer Array umwandeln zu tun. Denn die Exception fliegt bereits zum deployment Zeitpunkt. Hier wird die Methode selbst noch gar nicht ausgewertet. Du würdest hier eventuell Probleme zur Laufzeit bekommen. Schau dir mal deinen Code an wo du da JAXB einsetzt ich denke irgendwo wo du XML to Object oder Object to XML nutzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 24. Februar 2009 Autor Teilen Geschrieben 24. Februar 2009 hmm der fehler kam erst nachdem ich die Suchmethode hier geschrieben habe also muss es doch irgendwo darin liegen aber ich finde nix. habe doch alles gepostet Suchmethode WebMethod public Document[] searchInDocumentFieldsForSimpleSearch(final String and_search, final Long userId) { List<Document> documents= getSearchBean().searchInDocumentFieldsForSimpleSearch(and_search, userId); return documents.toArray(new Document[documents.size()]); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Schiller256 Geschrieben 24. Februar 2009 Teilen Geschrieben 24. Februar 2009 Weißt du was JAXB macht? Ich habe das Gefühl nicht wirklich. Bis jetzt bestand deine Webservice Schnittstelle nur aus primitiven Datentypen. Die machen beim umwandeln von XML to Java und wieder zurück keine Probleme. Jetzt verwendest du aber einen komplexen Datentyp da weiß die Webservice Runtime erstmal nichts mit anzufangen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TeamBob Geschrieben 25. Februar 2009 Autor Teilen Geschrieben 25. Februar 2009 Naja JAXB ermöglicht doch das aus XML Datein an java Klassen zu binden um daraus dann Java klassen aus eine XML Schema zu genieren. Naja also muss ich das Runtime irgendwie klar machen, bloss wie? Weis den keiner eine Lösung? Dann wäre ich der Sache schon sehr viel nähr. danke Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.