2013-04-02 2 views
4


,로 이동합니다. war 파일을 통한 설치는 매우 쉽고 즉시 사용할 수 있습니다. 그러나 이상한 문제가 있습니다.
나는 (그래서, pom.xmlsrc) 모든 것이 괜찮습니다, 내가 열고 파일을 제대로 읽을 수있는 한 나는 첫 번째 레벨을 탐색하려고 같은 표준 폴더 구조Gitblit : 잘못된 요청 때 힘내에 매우 좋은 웹 UI를 보인다 내가 <a href="http://gitblit.com/" rel="nofollow">Gitblit</a>을 시도하고 두 번째 수준 폴더

project 
    pom.xml 
    src 
    src/test-file.txt (I added this file to verify the issue) 
    src/java 
    src/java/main 
    src/java/main/package 
    src/java/main/package/File.java 

이있는 Maven 프로젝트를 공유하고 . 그러나 javasrc 아래에 열려고하면 링크가 localhost:8080/gitblit/tree/project/commit-id/src%2Fjava으로 렌더링되고 흰색 페이지가 표시됩니다. 요청이 서버 (Tomcat 7.0.32가 도움이 될 경우)로 전달되지 않으며, 방화 광이 단지 Error 400: Bad Request으로 알려줍니다.
%2F이 이상하게 보입니다. 따라서 수동으로 localhost:8080/gitblit/tree/project/commit-id/src/java에 링크를 수정하려고 시도했지만 내부 서버 오류가 생성됩니다. 로그를보고, 내가 읽었습니다

INFO Found more URL path parts then expected, these will be ignored. Url: 'http://localhost:8080/gitblit/tree/project/commit-id/src/java', mountpath: 'blob', urlPath: 'project/commit-id/src/java', expected 3 parameters was 4 

다음, 나는 그 test-file.txt을 추가했습니다. src으로 이동하여 test-file.txt을 열려고 시도하면 먼저 링크가 localhost:8080/gitblit/blob/project/commit-id/src%2Ftest-file.txt을 열어 파일을 찾을 수 없음을 나타내는 html 페이지를 표시합니다. 나는 (/%2F) 이전과 같은 트릭을 시도 할 경우, 나는이 예외가 나타납니다 : 나는 기본적으로 gitblit 자체 (gitblit.properties을 변경하지)를 구성하지 않은

INFO Found more URL path parts then expected, these will be ignored. Url: 'http://localhost:8080/gitblit/blob/project/commit-id/src/test-file.txt', mountpath: 'blob', urlPath: 'project/commit-id/src/test-file.txt', expected 3 parameters was 4 
ERROR /path/to/project/.git cant find {1} in tree {2} 
org.eclipse.jgit.errors.IncorrectObjectTypeException: Object commit-id is not a blob. 
    at org.eclipse.jgit.storage.file.WindowCursor.open(WindowCursor.java:130) 
    at org.eclipse.jgit.lib.ObjectDatabase.open(ObjectDatabase.java:176) 
    at org.eclipse.jgit.lib.Repository.open(Repository.java:278) 
    at com.gitblit.utils.JGitUtils.getByteContent(JGitUtils.java:563) 
    at com.gitblit.utils.JGitUtils.getStringContent(JGitUtils.java:596) 
    at com.gitblit.wicket.pages.BlobPage.<init>(BlobPage.java:133) 
    at sun.reflect.GeneratedConstructorAccessor22.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188) 
    at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89) 
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305) 
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320) 
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234) 
    at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) 
    at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279) 
    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358) 
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465) 
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) 
    at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486) 
    at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
    at java.lang.Thread.run(Thread.java:662) 
ERROR Can't instantiate page using constructor public com.gitblit.wicket.pages.BlobPage(org.apache.wicket.PageParameters) and argument r = "project" h = "commit-id" f = "src" 
org.apache.wicket.WicketRuntimeException: Can't instantiate page using constructor public com.gitblit.wicket.pages.BlobPage(org.apache.wicket.PageParameters) and argument r = "project" h = "commit-id" f = "src" 
    at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:212) 
    at org.apache.wicket.session.DefaultPageFactory.newPage(DefaultPageFactory.java:89) 
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.newPage(BookmarkablePageRequestTarget.java:305) 
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.getPage(BookmarkablePageRequestTarget.java:320) 
    at org.apache.wicket.request.target.component.BookmarkablePageRequestTarget.processEvents(BookmarkablePageRequestTarget.java:234) 
    at org.apache.wicket.request.AbstractRequestCycleProcessor.processEvents(AbstractRequestCycleProcessor.java:92) 
    at org.apache.wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:1279) 
    at org.apache.wicket.RequestCycle.step(RequestCycle.java:1358) 
    at org.apache.wicket.RequestCycle.steps(RequestCycle.java:1465) 
    at org.apache.wicket.RequestCycle.request(RequestCycle.java:545) 
    at org.apache.wicket.protocol.http.WicketFilter.doGet(WicketFilter.java:486) 
    at org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:319) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) 
    at java.lang.Thread.run(Thread.java:662) 
Caused by: java.lang.reflect.InvocationTargetException 
    at sun.reflect.GeneratedConstructorAccessor22.newInstance(Unknown Source) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513) 
    at org.apache.wicket.session.DefaultPageFactory.createPage(DefaultPageFactory.java:188) 
    ... 27 more 
Caused by: java.lang.NullPointerException 
    at com.gitblit.wicket.pages.BlobPage.generateSourceView(BlobPage.java:142) 
    at com.gitblit.wicket.pages.BlobPage.<init>(BlobPage.java:134) 
    ... 31 more 

를, 그래서 내 문제는 missed-에 상주 할 수 구성,하지만 난 알아낼 수 있습니다. 어떤 힌트?

답변

3

변경은

이 문장은 문제를 일으키는 사람이었다 gitblit.properties 없습니다. 그리고 해결책은 Gitblit.com FAQ에 정말 잘 문서화되었습니다. 톰캣
톰캣에 Gitblit 실행

disallowing embedded slashes by default의 추가 예방 조치를합니다. 이것은 Gitblit URL을 깨뜨립니다. 이 시나리오를 처리하는 방법에 대한 몇 가지 옵션이 있습니다 :
1. 조정할 Tomcat을 CATALINA_OPTS에 또는 JVM의 시작 매개 변수 -Dorg.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH = true를 추가
2 . 수정 중 하나를 사용하여 gitblit.properties :
- 비 꽤 web.mountParameters = 거짓과 사용, 매개 변수가 URL을
- web.forwardSlashCharacter =! Gitblit이 사용하도록 알려줍니다!/

web.forwardSlashCharacter = !을 사용했는데 관리자가 gitblit webapp를 다시로드하면 모든 것이 올바르게 작동합니다. 내 잘못은 James Morger가 강의를 제안 할 때까지 FAQ를주의 깊게 읽지 않았습니다.

2

이 바보 같은 문제를 해결하는 쉬운 방법은/var/lib/tomcat7/gitblit에 마운트 URL 을 사용하지 않도록 설정하는 것입니다.특성 :

이 쉬운 단계에 따라 :

  • 이 web.mountParameters을 찾을

    1. 나노 /var/lib/tomcat7/webapps/gitblit/WEB-INF/data/gitblit.properties = 사실 및
    2. t를 다시 시작 /etc/init.d/tomcat7거짓
    3. Tomcat을 다시 시작 로 변경 모자 다!

    Cya!

  • +0

    내 문제 수정 – weeksdev