Toon posts:

[J2EE] web.xml problemen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een probleem met een web applicatie.
Het probleem doet zich voor zodra ik een jsp pagina aanroep met de volgende inhoud:

code:
1
2
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<logic:redirect forward="page2"/>


ik krijg een error waar ik helemaal niets mee kan in JBOSS, maar gelukkig verteld 'MyEclipse' me meer, namelijk het volgende:
file /tags/struts-logic not found

leek mij een eenvoudig probleem, dit moest een fout in web.xml zijn... en dat klopt, ik open web.xml in xmlspy en hij blijkt niet te valideren.

dit is de error in xmlspy:
The parents element's content model disallowes element 'taglib' at this position.

hier de volledige file:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app>

<display-name>EFG-BANK</display-name>

<servlet>
  <servlet-name>action</servlet-name>
  <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
  <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
  </init-param>
  <init-param>
    <param-name>debug</param-name>
    <param-value>2</param-value>
  </init-param>
  <init-param>
    <param-name>detail</param-name>
    <param-value>2</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
  <servlet-name>action</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
  <welcome-file>Pages/index.jsp</welcome-file>
</welcome-file-list>

<security-constraint>
  <web-resource-collection>
    <web-resource-name>efg-bank</web-resource-name>
    <url-pattern>/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>beheerder</role-name>
    <role-name>klant</role-name>
  </auth-constraint>
</security-constraint>

<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Identify yourself</realm-name>
</login-config>

<taglib>
  <taglib-uri>/tags/struts-bean</taglib-uri>
  <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/tags/struts-html</taglib-uri>
  <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/tags/struts-logic</taglib-uri>
  <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/tags/struts-nested</taglib-uri>
  <taglib-location>/WEB-INF/struts-nested.tld</taglib-location>
</taglib>

<taglib>
  <taglib-uri>/tags/struts-tiles</taglib-uri>
  <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
</taglib>

</web-app>


Ik zie niet wat er hier niet aan klopt.

Uiteraard heb ik ook ff de dtd er bij gepakt en hierin staat het volgende :
<!--
The taglib element is used to describe a JSP tag library.

Used in: web-app
-->
<!ELEMENT taglib (taglib-uri, taglib-location)>
ik snap er geen hout meer van %)

  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Volgens mij moet je de taglib-tags vòòr de security-constraints en je login-config zetten (wel na je error-page).

Tip: ik gebruik de plugin XmlBuddy in Eclipse, en die vertelt je gewoon welke tag je waar mag zetten in een xml file. Zo kom ik ook aan mijn antwoord hierboven.

[ Voor 45% gewijzigd door kasper_vk op 12-05-2005 10:55 ]

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

Kijk je ergens anders in de dtd dan zie je dat de volgorde van de elementen binnen de web-app ook van belang is, namelijk:
(icon?, display-name?, description?, distributable?, context-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*, env-entry*, ejb-ref*, ejb-local-ref*)".

ps: Dit lijstje komt uit Intellij xml validatie van een door mij expres in de verkeerde volgorde gezette web.xml. Als we dan toch met onze favo IDE gaan smijten ;)

[ Voor 16% gewijzigd door Janoz op 12-05-2005 11:19 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op donderdag 12 mei 2005 @ 11:18:
Kijk je ergens anders in de dtd dan zie je dat de volgorde van de elementen binnen de web-app ook van belang is, namelijk:
(icon?, display-name?, description?, distributable?, context-param*, filter*, filter-mapping*, listener*, servlet*, servlet-mapping*, session-config?, mime-mapping*, welcome-file-list?, error-page*, taglib*, resource-env-ref*, resource-ref*, security-constraint*, login-config?, security-role*, env-entry*, ejb-ref*, ejb-local-ref*)".

ps: Dit lijstje komt uit Intellij xml validatie van een door mij expres in de verkeerde volgorde gezette web.xml. Als we dan toch met onze favo IDE gaan smijten ;)
sorry, maar ik zie in dit rijtje geen verplichte velden staan...

;)

  • ronaldmathies
  • Registratie: Juni 2001
  • Niet online
Nog een tip!

Doe het volgende:

code:
1
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles" %>


Waarbij de URI de URI is uit de *.TLD.

Dan hoef je helemaal niks meer te registreren in je web.xml.

3015 Wp-z 5360 Wp-nno op 2 x SMA-SB3600 TL-21, Warmtepomp: ERSC-VM2CR2 / PUHZ-SHW140 YHA, WTW Q350, EV Kia Ev6 GT-Line


  • kasper_vk
  • Registratie: Augustus 2002
  • Laatst online: 08-04-2025
Verwijderd schreef op donderdag 12 mei 2005 @ 12:03:
[...]
sorry, maar ik zie in dit rijtje geen verplichte velden staan...
;)
Ook sorry ;), maar ik kan deze opmerking niet rijmen met de foutmelding die je in je startpost geeft
The parents element's content model disallowes element 'taglib' at this position.
en de daarvoor aangedragen oplossingen; namelijk dat het te maken heeft met de volgorde waarop je de verschillende tags in web.xml zet.

Begrijp jij de geboden oplossingen niet, kloppen ze niet of begrijpen wij het probleem niet goed?
no offence, uiteraard :)

[ Voor 7% gewijzigd door kasper_vk op 12-05-2005 12:54 ]

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 04-05 14:55

Janoz

Moderator Devschuur®

!litemod

Daarnaast staan in dat rijtje wel wat de verplichte velden zijn;), dat is er namelijk geen een. Bij elk element staat een ? (0 of 1) of een * (0 of meer).


edit: Zo beter ? ;)

[ Voor 10% gewijzigd door Janoz op 12-05-2005 13:38 ]

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Het was idd de volgorde van de tags ...

al was dat niet de reden van het probleem :P

de reden van het probleem was een configuratie foutje in tiles-defs.xml :X
Janoz schreef op donderdag 12 mei 2005 @ 13:01:
Daarnaast staan in dat rijtje wel de verplichte velden ;), dat is er namelijk geen een. Bij elk element staat een ? (0 of 1) of een * (0 of meer).
lees die zin eens na :P

er is geen verplicht veld, precies wat ik zei ;)

iig bedankt voor de genomen moeite...
Pagina: 1