Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > 2 сервлета, один url-pattern


Автор: Asal 29.9.2008, 17:52
Всем привет.
Сразу прошу не пинать за глупый вопрос, но ответ на него я сам не нашел.

Есть два сервлета
Код

  <servlet>
    <servlet-name>adminpanel</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>myshop</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
  </servlet>

Хочу сделать мэпинг
http://localhost:8080/login.do - обрабатывает myshop
http://localhost:8080/adminpanel/login.do - обрабатывает adminpanel
Вот и вопрос - как?

Автор: fixxer 29.9.2008, 20:20
Пречитайте еще раз документацию по Spring MVC. Зачем Вам два DispatcherPortlet?

Автор: Asal 30.9.2008, 09:54
Цитата(fixxer @  29.9.2008,  20:20 Найти цитируемый пост)
Зачем Вам два DispatcherPortlet?

В ознакомительных целях.

Я понимаю что достаточно одного DispatcherServlet, а обработку /login.do и /adminpanel/login.do
делать в Controller.

Но все же интересно как сделать разделение на два сервлета.

Автор: fixxer 30.9.2008, 12:17
через <servlet-mapping> вестимо. Только не нужно это.

Автор: Asal 30.9.2008, 15:33
Цитата(fixxer @  30.9.2008,  12:17 Найти цитируемый пост)
через <servlet-mapping> вестимо. 

это тоже понятно, только не понятно какие паттерн надо указывать, поэтому и спрашиваю.

Цитата(fixxer @  30.9.2008,  12:17 Найти цитируемый пост)
Только не нужно это.

понятное дело
делаю это только
Цитата(Asal @  30.9.2008,  09:54 Найти цитируемый пост)
В ознакомительных целях.

такой мэппинг не работает
Код

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

Автор: fixxer 30.9.2008, 16:44
Что значит не работает?

Автор: Asal 30.9.2008, 16:59
Цитата(fixxer @  30.9.2008,  16:44 Найти цитируемый пост)
Что значит не работает?

Ну то и значит  smile 
Код

[#|2008-09-30T16:55:00.546+0300|SEVERE|sun-appserver9.1|javax.enterprise.system.tools.deployment|_ThreadID=15;_ThreadName=Thread-47;_RequestID=aaaa872b-d3f5-4add-a167-b378124bafc5;|Exception occured in J2EEC Phasejava.lang.IllegalArgumentException: Invalid URL Pattern: [/adminpanel/*.do]
com.sun.enterprise.deployment.backend.IASDeploymentException: Error loading deployment descriptors for module [MyshopWeb] -- Invalid URL Pattern: [/adminpanel/*.do]
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:390)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:423)
    at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:157)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:179)
    at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:191)
    at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:279)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:788)
    at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
    at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223)
Caused by: java.lang.IllegalArgumentException: Invalid URL Pattern: [/adminpanel/*.do]
    at com.sun.enterprise.deployment.node.web.ServletMappingNode.setElementValue(ServletMappingNode.java:88)
    at com.sun.enterprise.deployment.node.SaxParserHandler.endElement(SaxParserHandler.java:423)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:795)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1772)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2923)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:298)
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:226)
    at com.sun.enterprise.deployment.archivist.Archivist.readStandardDeploymentDescriptor(Archivist.java:480)
    at com.sun.enterprise.deployment.archivist.Archivist.readDeploymentDescriptors(Archivist.java:305)
    at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:213)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:763)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:744)
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:349)
    ... 10 more
|#]



Автор: alexadr 30.9.2008, 17:32
попробуй:
Код

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


если с ходу не заметно, - я /adminpanel/*.do заменил на:
adminpanel/*.do

Автор: Asal 30.9.2008, 17:39
Код

[#|2008-09-30T17:38:22.687+0300|SEVERE|sun-appserver9.1|javax.enterprise.system.tools.deployment|_ThreadID=22;_ThreadName=Thread-437;_RequestID=91934997-aaae-4f74-a8d7-0831429ceeb2;|Exception occured in J2EEC Phasejava.lang.IllegalArgumentException: Invalid URL Pattern: [adminpanel/*.do]
com.sun.enterprise.deployment.backend.IASDeploymentException: Error loading deployment descriptors for module [MyshopWeb] -- Invalid URL Pattern: [adminpanel/*.do]
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:390)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.loadDescriptors(ModuleDeployer.java:423)
    at com.sun.enterprise.deployment.backend.WebModuleDeployer.deploy(WebModuleDeployer.java:157)
    at com.sun.enterprise.deployment.backend.ModuleDeployer.doRequestFinish(ModuleDeployer.java:179)
    at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:191)
    at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:919)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:279)
    at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:788)
    at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
    at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:223)
Caused by: java.lang.IllegalArgumentException: Invalid URL Pattern: [adminpanel/*.do]
    at com.sun.enterprise.deployment.node.web.ServletMappingNode.setElementValue(ServletMappingNode.java:88)
    at com.sun.enterprise.deployment.node.SaxParserHandler.endElement(SaxParserHandler.java:423)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:601)
    at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.endElement(XMLSchemaValidator.java:795)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1772)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2923)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:647)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:298)
    at com.sun.enterprise.deployment.io.DeploymentDescriptorFile.read(DeploymentDescriptorFile.java:226)
    at com.sun.enterprise.deployment.archivist.Archivist.readStandardDeploymentDescriptor(Archivist.java:480)
    at com.sun.enterprise.deployment.archivist.Archivist.readDeploymentDescriptors(Archivist.java:305)
    at com.sun.enterprise.deployment.archivist.Archivist.open(Archivist.java:213)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:763)
    at com.sun.enterprise.deployment.archivist.ApplicationArchivist.openArchive(ApplicationArchivist.java:744)
    at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:349)
    ... 10 more
|#]

Автор: ivg 1.10.2008, 05:38
http://jcp.org/aboutJava/communityprocess/mrel/jsr154/index2.html
см. CHAPTER SRV.11 Mapping Requests to Servlets

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)