Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hi
Also ich habe mal ne schnell frage.
Ich habe ein projekt und darin habe ein package webservice, wo der Webserivce drin programmiert habe.
Jetzt soll ich von anderen packages die in dem projekt sind 2 methoden reinbringen, aber ich weis nicht wie ich die
reinbringen soll.
Es handelt sich um ein search methode. Diese sind scho fertig programmiert, sodass ich sie bloss noch im webserivce
aufrufen muss, aber wie?
kann mir da jemand helfen?
Danke
Normalerweise brauchst du erstmal ein Objekt der Klasse welche die Methode bereit stellt. D.h. natürlich solange die Methode nicht statisch ist...
Wenn die Methode statisch ist, reicht dir der Klassenname der implementierenden Klasse!
Code:
//oo
DeineKlasse ref = new DeineKlasse();
ref.search();
//statisch
DeineKlasse.search()
woher weis ich ob die Methode statisch ist oder nicht.
Das andere package heißt search und eine klasse darin heißt searchbean
und die methode die ich haben will heißt search1.
Diese methode möchte ich jetzt in mein anderes package / klasse
haben. Also er soll diese methode aufrufen.
Wie genau lautet denn dafür der Quelltext.
Danke
Schalt mal nen Gang runter... Soll deine Klasse die du grad programmierst die Funktion search der Klasse SearchBean benutzen? oder soll sie genau diese Funktion ebenfalls zur Verfügung stellen?
Ob eine Methode statisch siehst du entweder in der Dokumentation oder im Quelltext der entsprechenden Klasse selbst am Schlüsselwort static...
Vllt sagst du mal was deine Aufgabe ist! Kommt mir nicht so vor als würdest du schon viel in Java gemacht haben
Hi
Also ich habe hier ein Projekt vor mir wo ein Package Search heißt. Darin sind verschieden Klassen und
die Klasse die ich brauche heißt SearchBean. Darin steht eine Methode Search1 die domkumente nach schlagwörtern
durchsucht.
Jetzt soll ich ein neues Package Webservice erstellen und da einen Webservice programmieren der genau sowas
bereitstellt.
Der Webservice ansich ist sogut wie fertig.
Jetzt muss ich nur noch die Methode Search1 reinbringen das diese funktion auch als webservice bereitgestellt werden kann. Ich hoffe du weist was ich meine. Die Methode ist nicht statisch so wie es aussieht.
Danke
Wenn die nicht statisch ist und die Funktion search1 schon komplett fertig ist und nicht geändert werden muss weiss ich nicht genau wo das Problem liegt...
Code:
//ganz nach oben:
import search.SearchBean;
//da wo du die Suche brauchst:
SearchBean object = new SearchBean(); // Beans sind Klassen mit parameterlosem Konstruktor...
object.search1();
Ich muss einfach mal meinen Ärger über Dein gutes Deutsch loswerden:
1.) Wenn Du schon nicht den Genetiv benutzt ( wegen DES Namenwechsels ) , dann nimm wie Andere den DativEM ..
2.) Es erleichtert das Verständnis eines Problemes sehr, wenn der Fragende Satzzeichen verwendet. Du nutzt zwar Punkte fürs Satzende; daß es weiterhin auch noch Kommata ( vielfach auch als KOMMAS bezeichnet) gibt, scheint Dir fremd.
3.) Manuche hat Dir doch die Antwort auf Deine Frage gegeben.
Und wenn Du nicht weiß, ob eine Klasse static oder nicht ist: versuche, sie direct aufzurufen: Ist sie es nicht, wirst Du eine Fehlermeldung bekommen
Ich habe mir Deine zwei Jahre alten Themen durchgelesen und beschlossen, Dir nicht helfen zu wollen. Auch nicht, nachdem Du mich per PN darum gebeten hast.
Der Beschluss ergeht nicht etwa aus persönlichen, sondern aus folgenden Gründen:
Du scheinst in den letzten zwei Jahren über Java nichts gelernt zu haben.
Es ist nicht erkennbar, dass Du Dich tatsächlich mit Java beschäftigen möchtest.
Du gibst Dir noch nicht einmal Mühe Dein Problem sinnvoll und verständlich zu beschreiben.
Auf die Lösungsansätze der Forenschreiber gehst Du einfach nicht ein.
Nimm Dir ein Java-Buch und lern die Sprache! Links zu Buchempfehlungen findest du en masse in diesem Forum über die Suchfunktion.
Hallo
Erstmal danke für die ganzen Tipps. Ich werde versuchen sie zu befolgen.
Also nochmal zu meinen Problem. Ich werde einmal versuchen, es etwas
besser zu umschreiben.
Ich habe vor mir ein Project und in diesem Project heißt ein Package: Search.
Darin befinden sich mehrere Klassen und eine Klasse besitzt den Namen: SearchBean
Der Quelltext dieser Klasse geht circa über 50 Seiten. Ich benötige daraus eine
Methode die es ermöglicht dokumente nach schlagwörtern zu durchsuchen und
diese auszugeben. Diese Methode ist diese "searchInDocumentFieldsForSimpleSearch"
Code:
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);
}
}
}
return documents;
}
/*
* (non-Javadoc)
*
* @seede.search.SearchLocal#
* getAllDocumentsByUserCommunitiesAndByReleaseStatus(java.lang.Long)
*/
Ich habe in diesen project ein neues package: webserive angelegt und den webservice programmiert.
Ich benötige in diesem Webservice die methode von oben, aber weis nicht wie ich sie einbinden soll.
Hier ist mal der Quelltext zum Webservice. Ich hoffe ihr könnt mir helfen. Ganz unten ist der code zum
einbinden der Methode, aber das kann doch nicht alles sein?
Danke für jede Hilfe
Code:
package web.service;
import javax.ejb.EJB;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.naming.InitialContext;
import 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.until.ArrayList<String> getItems(java.lang.String searchTerm) {
// new java.until.ArrayList<String>();
@EJB
SearchBean object = new SearchBean();
object.searchInDocumentFieldsForSimpleSearch();
}
}
Warum kann das nicht alles sein? Du erezugst dir ein Objekt vom Typ SearchBean... Der Name SearchBean kommt wohl daher, dass die Klass NUR einen parameterlosen Konstrukto besitzt. Solche Klassen werden JavaBeans genannt und Felder werder eben nur mit setter-Methoden gefüllt!
Dieses Objekt stellt dir die oben genannte Methode zur Verfügung.
Allerdings erwartet die Methode noch 2 Parameter! Ein Objekt der Klasse String und ein Objekt der Klasse Long... Was genau die beinhalten müssen kann dir hier aber keiner sagen!