webForumDet fria alternativet

Tomcat

21 svar · 782 visningar · startad av AG

AGMedlem sedan mars 20001 229 inlägg
#1

Har några frågor om Tomcat.
Läste dokumentationen men är fortfarande osäker.

Varför komplimeras inte mina servlet-filer direkt när de ligger i web-inf/classes katalogen?
Kör jag lokal komplimering fungerar det.

Vilken katalog lyssnar bönorna till som standard, trodde det var samma som servletsen?

Har tidigare jobbat med Resin under Windows, arbeta då med win-odbc. Vilket är att föredra nu när man har Tomcat på Unix? Är mysql-databas.

Andreas

AGMedlem sedan mars 20001 229 inlägg
#2

Verkar ju nästan som om tomcat inte har inbyggd support för bönor, stämmer detta?

Andreas

JaarMedlem sedan juli 2001434 inlägg
#3

Kompilera dina bönor och lägg class filerna i din classes katalog, då ska det fungera... Tomcat kompilerar inte dina java filer, endast JSP-sidorna kompileras, de ska ligga i source-format

AGMedlem sedan mars 20001 229 inlägg
#4

Kan ni utläsa något av följande fel
http://test.myserverspy.com/mybean.jsp

Andreas

JaarMedlem sedan juli 2001434 inlägg
#5

Detta får snart flyttas till det nya web-forumet ;)

Ditt fel baseras i org.apache.jsp.MyBean, detta är nog lite tokigt.
Jag vet inte vart du lagt dina class filer, men du har en katalog som oftast heter classes i din Apache Tomcat katalog.
Om det är ett package så får du skapa underkataloger som vanligt.

Ex: package superpaketet ska ligga under classes/superpaketet
Din klass (MyBean) ska alltså ligga där...

Hur du använder MyBean är också fel. Använd jsp:useBean taggen istället...

<jsp:useBean id="myBean" class="superpaketet.MyBean"/>

när du sedan vill använda bönan får du köra
String test = myBean.function(para1); t.ex

Om du ska använda den som du vill
MyBean test = new MyBean();
måste du säga till jsp-sidan att den ska importera klassen...
<%@ page import="superpaketet.MyBean" %>

Samma sak om du använder andra klasser som den troligen inte känner till, dock kan man köra på de flesta (Vector, String osv)

//Jan

AGMedlem sedan mars 20001 229 inlägg
#6

Katalogen fungerar för servlet (web-inf/classes) http://test.myserverspy.com/servlet/Hello
Koden är som följer:

'bönan - MyBean

public class MyBean {
	private String text="Hello World";
	
	public String getText()
	{
		return(text);
	}
	
	public void setText(String text)
	{
		this.text=text;
	}
}

'sidan - bean.jsp

<jsp:useBean id="MyBean" class="MyBean"/>
<html>
	<head>
		<title>test</title>
	</head>
	<body>
		<h1><jsp:getProperty name="MyBean" property="text"/></h1>
	</body>
</html>

Verkar frågande.

Andreas

JaarMedlem sedan juli 2001434 inlägg
#7

Och bönan ligger kompilerad (MyBean.class) i WEB-INF/classes katalogen?
Om servletsen fungerar så fungerar ju classpathen o då borde web-bönan också fungera...

AGMedlem sedan mars 20001 229 inlägg
#8

Japp .class-filen finns där. Har fixat det på min lokala server, resin.

Andreas

sgtpepperMedlem sedan apr. 20005 524 inlägg
#9

Eftersom vi nu fått ett webbrelaterat Javaforum så flyttar jag tråden dit, hoppas det är ok AG?

AGMedlem sedan mars 20001 229 inlägg
#10

Självklart, upptäckte det igår kväll, kul.
Sgtpepper du med din expertis har säkert en lösning på detta problem.

Andreas

ViktorMedlem sedan aug. 20021 710 inlägg
#11

Fråga mig inte varför men det fungerar perfekt när jag lägger bönan i ett package.

package com;

public class MyBean {
	private String text="Hello World";

	public String getText()
	{
		return(text);
	}

	public void setText(String text)
	{
		this.text=text;
	}
}
<jsp:useBean id="MyBean" class="com.MyBean"/>
<html>
	<head>
		<title>test</title>
	</head>
	<body>
		<h1><jsp:getProperty name="MyBean" property="text"/></h1>
	</body>
</html>

/Viktor

AGMedlem sedan mars 20001 229 inlägg
#12

Nope, skumt
http://test.myserverspy.com/mybean.jsp
Kan det vara min komplimering som är fel?
Fungerar utan problem lokalt.
http://213.65.197.127:8080/mybean.jsp

Andreas

sgtpepperMedlem sedan apr. 20005 524 inlägg
#13

Har du testat att lägga bönan i ett paket som Viktor skrev? Det skall tydligen finnas en bugg i Tomcat när man lägger sina bönor i default-paketet (dvs inget paket).

AGMedlem sedan mars 20001 229 inlägg
#14

Japp den ligger i ett paket, precis som i Viktors exempel.
Kan man inte på nåt sätt bara försöka anropa själva bönklassen, och se ifall man får svar, alltså anrop rätt in i jdk.

Andreas

sgtpepperMedlem sedan apr. 20005 524 inlägg
#15

Kan man inte på nåt sätt bara försöka anropa själva bönklassen, och se ifall man får svar, alltså anrop rätt in i jdk.

Vet inte riktigt hur du menar, men självklart kan du instansiera bönklassen som "vanligt" i din JSP-sida, dvs:

com.foo.bar.MyBean theBean = new com.foo.bar.MyBean();
theBean.doSomething();

osv..

AGMedlem sedan mars 20001 229 inlägg
#16

Nja
Menade mer att man skulle försöka göra en import av bönpaketet, och se om det över huvud taget skulle fungera.
Ingen annan som har nån lösning på mitt lilla dilemma?
Varför komplimeras inte filerna automatiskt i tomcat?

Andreas

sgtpepperMedlem sedan apr. 20005 524 inlägg
#17

Menade mer att man skulle försöka göra en import av bönpaketet

Jaha, det gör du så här:

<%@ page import="foo.bar.MyClass, foo.bar.MyOtherClass, java.util.*" %>
AGMedlem sedan mars 20001 229 inlägg
#18

Blev inte vidare klokare av det heller, när jag testade. Vad kan vara felet, en för gammal jdk eller så?

Jörgen HPMedlem sedan feb. 20012 179 inlägg
#19

JDK 1.1 och senare kan köra JavaBeans. :)

Jörgen HPMedlem sedan feb. 20012 179 inlägg
#20

Det var ett tag sedan jag pulade med JSP senast. Men om jag minns rätt måste du ange en räckvidd för <jsp:useBean>

<jsp:useBean id="name"  scope="page|request|session|application">
Genererad på 510 ms · cache AV · v20260730165559-full.f96bc7eb