> > But what do you think needs to match the jar file? I mean, > struts2-core.jar doesn't contain xwork-1.1.1.dtd, but the xwork jar does . > . . so why wouldn't it find it if it was just taking the xwork-1.1.1.dtd > and checking the classpath. > > When XWork was moved to ASF, we changed all the DOCTYPEs, the correct one > is: > > <!DOCTYPE xwork PUBLIC > "-//Apache Struts//XWork 1.0//EN" > "http://struts.apache.org/dtds/xwork-1.1.1.dtd"> > > You can find all the DTDs here [1], basically all these DTDs are part > of distribution, so Struts 2 can read them from jars and don't have to > look over the internet. In your case, the DOCTYPE is not available > locally and Struts 2 is trying to fetch it from internet. > > [1] http://struts.apache.org/dtds/ >
Thanks Lukasz. This is very useful information. I think this clearly fixes my problem, but I still have some questions. 1) when was xwork moved to ASF? 2) It's not really Struts 2 doing the look up right? It's the sax parser? Is Struts2 using the EntityResolver to add the resolution logic that converts the DOCTYPE tag to a classpath resource lookup? If you don't know of the top of your head, I plan to dive into the code myself anyhow.