2017-01-11 2 views
0

GlassFish 응용 프로그램 서버가있는 EJB 웹 응용 프로그램이 있습니다. 이제 컨텍스트 루트를 "/"와 같이 원합니다. 현재 URL은 "http://localhost:8080/Make" 입니다.하지만이 중 하나를 원합니다 : "http://localhost:8080"이 내 응용 프로그램 이름으로 "확인"되어 있지 않습니다. 하지만 암탉 나는 그것을 배포하고 팁 "http://localhost:8080"나는 glassfish에서 "서버가 실행 중"페이지가있어 그래서 내가 뭘 할 수 있는지 알아 내려고 trie. 내 WEB-INF 폴더에 glassfish-web.xml을 만듭니다.Glassfish 응용 프로그램 서버로 컨텍스트 루트 설정

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish- web-app_3_0-1.dtd"> 
<glassfish-web-app error-url=""> 
<context-root>/</context-root> 
</glassfish-web-app> 

아무런 일도 일어나지 않습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE sun-web-app PUBLIC 
"-//Sun Microsystems, Inc.//DTD GlassFish Application Server 3.0 Servlet 3.0//EN" 
"http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd"> 
<sun-web-app error-url=""> 
<context-root>/path/to/our/App</context-root> 
</sun-web-app> 

이 또한 내가 글래스 피쉬-application.xml을하고 application.xml을 함께 트라이을 hvae : 난 같은 폴더에 sun-web.xml에를 만드는 것보다. 그래서이 효과를 얻으려면 어떻게해야합니까?

PS :이 내 web.xml을하고 난 EAR 파일로

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> 
<display-name>Make</display-name> 
<mime-mapping> 
<extension>xhtml</extension> 
<mime-type>application/xml</mime-type> 
</mime-mapping> 
<welcome-file-list> 
<welcome-file>anmeldung.xhtml</welcome-file> 
</welcome-file-list> 
<session-config> 
<session-timeout>30</session-timeout> 
</session-config> 
<error-page> 
<exception-type>javax.faces.application.ViewExpiredException</exception-type> 
<location>/anmeldung.xhtml</location> 
</error-page> 
<context-param> 
<param-name>org.apache.myfaces.SERIALIZE_STATE_IN_SESSION</param-name> 
<param-value>false</param-value> 
</context-param> 
<context-param> 
<param-name>primefaces.THEME</param-name> 
<param-value>bootstrap</param-value> 
</context-param> 
<context-param> 
<param-name>javax.faces.WEBAPP_RESOURCES_DIRECTORY</param-name> 
<param-value>/WEB-INF/resources</param-value> 
</context-param> 
<context-param> 
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description> 
<param-name>javax.faces.STATE_SAVING_METHOD</param-name> 
<param-value>client</param-value> 
</context-param> 
<context-param> 
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name> 
<param-value>resources.application</param-value> 
</context-param> 
<listener> 
<listener-class>com.sun.faces.config.ConfigureListener</listener-class> 
</listener> 
<servlet> 
<servlet-name>Faces Servlet</servlet-name> 
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class> 
<load-on-startup>1</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>Faces Servlet</servlet-name> 
<url-pattern>*.xhtml</url-pattern> 
</servlet-mapping> 
</web-app> 

편집을 배포 :

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> 
<application-name>Make</application-name> 
<display-name>Make</display-name> 
<module> 
<web> 
    <web-uri>Make.war</web-uri> 
    <context-root>/</context-root> 
</web> 
</module> 
<module> 
    <ejb>makeITown.jar</ejb> 
</module> 
<library-directory>lib</library-directory> 
</application> 
+0

정확히 같은 설정이 여기에서 작동합니다 ... 아마도'paven.xml '에'maven-ear-plugin'을 가지고 있습니까? 이렇게하면 application.xml을 생성 된 것으로 덮어 쓸 수 있습니다. – unwichtich

+0

Maven을 사용하지 마십시오 –

+0

정말 이상합니다. 나는 여기에 같은 설정을하고'web.xml'을 시도해 보았고 작동합니다 ... – unwichtich

답변

0

glassfish-web.xml 당신이 게시에 application.xml을 WEB을-INF 폴더에 보인다 괜찮아.

당신이 EAR 같이 응용 프로그램을 배포하는 경우, 당신이해야 할 수도와 같은 application.xml을 :

<?xml version="1.0" encoding="UTF-8"?> 
<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6"> 
    <application-name>something</application-name> 
    <display-name>something</display-name> 
    <module> 
    <web> 
     <web-uri>your_webapplication.war</web-uri> 
     <context-root>/</context-root> 
    </web> 
    </module> 
    <module> 
    <ejb>your_ejb_services.jar</ejb> 
    </module> 
    <library-directory>lib</library-directory> 
</application> 

이 그냥 템플릿 예입니다. 여러 웹 모듈과 ejb 모듈을 가질 수도 있습니다. 배포 할 때

당신은 글래스 피시 관리 UI를 통해 배포하는 경우에는 컨텍스트 루트를 설정할 수 있습니다

deploy application to glassfish

당신이 및 asadmin을 사용하는 경우이 같은 컨텍스트 루트 설정할 수 있습니다 배포 :

asadmin deploy --name something --contextroot//path/of/your/war.war 
+0

Thx,하지만 문제를 해결하지 못했습니다. –

+0

이제는 설정에 대한 추가 정보가 필요합니다. 가지고있는 경우 web.xml을 질문에 추가하십시오. EAR 또는 WAR로 배포합니까? – unwichtich

+0

@unwichtig - 당신이 만든 날 :) 문제는 내가 .EAR 파일에 META-INF 폴더를 만들지 않았다는 것입니다. 이제 작동합니다! 고마워 –

관련 문제