Impostazione Mac OS X 10.6.8, Apache Tomcat 6.0.16, Java 1.6.6_29, Eclipse IDE Indigo.Invocazione di un metodo Java in JSP
ho fatto una domanda simile a questo prima al How to execute and include a Java API from a Web App project ma il set up da allora è cambiato che ora ho il codice Java nel WebAp
Sto cercando di richiamare un metodo Java da una pagina JSP e ritorno i risultati. Ho esaminato molti post, ma temo che la mia mancanza di esperienza con entrambe le lingue sia il problema principale.
Ho un WebSP JSP che cerca un database XML e restituisce il contenuto all'utente. Mi è stato chiesto di integrare un ulteriore codice java che cerca i siti Web predefiniti e restituisce il contenuto.
Ho giocato in giro con il codice simile al di sotto, ma penso che sto cercando qualcosa di diverso
<%@ include file="/Applications/Tomcat/apache-tomcat-6.0.16/webapps/myWebApp/program.java" %>
Qualcuno mi può dare una migliore idea di quello che sto cercando?
Inoltre, sai se devo modificare qualcos'altro in WebAp per connettere i due file? I file di classe nella cartella WebINF?
Qualsiasi aiuto è molto apprezzato
Deepend
package sliceClient;
import java.util.List;
public class Run {
@Inject
private SliceSearcher sliceSearcher;
@Inject
private SliceCreator sliceCreator;
/**
* @param args
*/
public static void main(String[] args) {
Injector injector = Guice.createInjector(new GuiceInjector());
Run r = injector.getInstance(Run.class);
r.runSliceConsumer();
}
private void setSlicepediaProductionMode(boolean productionMode){
sliceSearcher.setProductionMode(productionMode);
sliceCreator.setProductionMode(productionMode);
}
public void runSliceConsumer() {
System.out.println("Starting Slice Consumer");
//Remove this line if the real slicepedia server is to be used
setSlicepediaProductionMode(true);
List<SliceHit> sliceHits = searchForSlices();
if (sliceHits == null) {
System.err.println("Timeout occurred while fetching slices");
return;
}
if (!sliceHits.isEmpty()) {
System.out.println("Found some slices Yuhuuuu ! :-) ");
String sliceContent = createSlices(sliceHits);
System.out.println("Slice content:");
System.out.println(sliceContent);
} else {
System.out.println("No Slices were found for this query");
}
System.out.println("Slice Consumer stopped activity");
}
private String createSlices(List<SliceHit> sliceHits) {
sliceCreator.setSliceHits(sliceHits);
if (sliceCreator.run()) {
SlicePackage slicePackage = sliceCreator.getNextSlicePackage();
return slicePackage.getSliceContent();
} else {
return sliceCreator.getErrorMessage();
}
}
private List<SliceHit> searchForSlices() {
SlicepediaQuery sliceQuery = new SlicepediaQuery();
sliceQuery.paramANNOTATION_READING_DIFFICULTY(new Double(30), "<");
//Works
// String dbConcept = "http://dbpedia.org/resource/human_rights";
// sliceQuery.paramANNOTATION_CONCEPT_FEATURE_HAS_DBPEDIA(dbConcept,0.5, ">");
// sliceQuery.paramHAS_NBR_OF_PARAGRAPHS(1,">");
// sliceQuery.paramIsAnOpenSlice(true);
// sliceQuery.paramHasNumberOfToken(80, ">");
sliceSearcher.setSliceQuery(sliceQuery);
if (sliceSearcher.run()) {
return sliceSearcher.getSliceHits();
} else {
return null;
}
}
}
Hi Tomasz In primo luogo, grazie per la risposta. Dovrò andare con il modo brutto in quanto non sono ancora abbastanza avanzato per il metodo del front controller, ancora. Tuttavia non sono sicuro della sintassi esatta della vostra risposta <% = com.example.MyUtility.getSomething()%> Il mio file Java si chiama "slicer.java" E 'un unico pacchetto principale chiamata "sliceClient" voglio richiamare "sliceCreate" voglio restituire una stringa chiamata "sliceHit" il codice si trova nel WEB-INF/clases/src ho provato varianti di <% = session.sliceClient. getsliceHit()%> senza successo Come sempre, qualsiasi aiuto è apprezzato Deep fine – Deepend
@Deepend Ho paura che tu debba mostrarci il contenuto di 'slicer.java', la tua denominazione e il tuo vocabolario sono un po 'confusi nel mondo Java. Non abbiamo bisogno di corpi metodo, solo firme (per favore aggiungilo alla domanda, non come commento).Da quanto hai detto qui, magari prova: '<% = sliceClient.sliceCreate()%>' ... –
Ho aggiunto il codice alla domanda adesso. Dato che sono nuovo di StackOverFlow, non sapevo che modificare la domanda originale fosse accettabile. Grazie per il vostro aiuto in anticipo Deepend – Deepend