2014-11-26 4 views
0

Restlet을 사용하여 Java API를 작성하고 있습니다. 이클립스에서 실행할 때 그것은 꽤 잘 작동하지만 난 .exe 파일을 생성 (exe4j를 포함) 때마다 나는 거기에서 그것을 실행 편안한 API 멈추는 Not found 오류 (찾을 수 없음 10.4.5 404).exe를 만들 때 Restlet API가 작동을 멈 춥니 다.

이유를 보여주는 작업 이 일이 일어 났습니까?

내가 아는 한 .exe를 만들 때 필요한 모든 라이브러리가 포함됩니다. 이 exe4j에 사용되는 내 .xml 파일이 전혀 관련이 경우

<pathelement location="${lib}/com.mysql.jdbc_5.1.5.jar" /> 
    <pathelement location="${lib}/jacob.jar" /> 
    <pathelement location="${lib}/joda-time-2.3.jar" /> 
    <pathelement location="${lib}/json-simple-1.1.1.jar" /> 
    <pathelement location="${lib}/junit-4.11.jar" /> 
    <pathelement location="${lib}/log4j-api-2.0.1.jar" /> 
    <pathelement location="${lib}/log4j-core-2.0.1.jar" /> 
    <pathelement location="${lib}/mail.jar" /> 
    <pathelement location="${lib}/ojdbc6.jar" /> 
    <pathelement location="${lib}/org.restlet.jar" /> 
    <pathelement location="${lib}/pdfbox-app-1.8.0.jar" /> 
    <pathelement location="${lib}/sigar.jar" /> 
    <pathelement location="${lib}/sqlite-jdbc-3.7.2.jar" /> 
    <pathelement location="${lib}/guava-17.0.jar" /> 
    <pathelement location="${lib}/zeromq.jar" /> 

, 여기에 내가 경로를 만드는 방법은 다음과 같습니다

/* Creates a root Restlet that will receive all incoming calls.*/ 
    @Override 
    public Restlet createInboundRoot() { 
     // Create a router Restlet that routes each call to the relevant instance 
     Router router = new Router(getContext()); 

     // Defines routes 
     router.attach("/users", UsersController.class); 
     router.attach("/departments", DepartmentsController.class); 
     router.attach("/absences", AbsencesController.class); 

     router.attachDefault(RestDefault.class); 

     return router; 
    } 
+0

embeded http 서버의 로그에있는 내용은 무엇입니까? – PeterMmm

+0

아마 *. * 리소스를 .exe에 압축하지 마십시오. 클래스를 사용할 수 없으므로 서버에서 찾을 수 없습니다 (instatiate). – PeterMmm

+0

@PeterMmm 어떻게 로그를 확인할 수 있습니까? 그리고 포장재로 무엇을 의미합니까? [이것은 exe4.j에 대한 내 전체'.xml' 파일 (http://paste.ofcode.org/7rd9Vm5R84iZrH5QVXmyhL)과 [.exe4j 파일] (http://paste.ofcode.org/gjMyEKHAxaigF6xVATkVcV)입니다. 그것과 관련된. – Alvaro

답변

1

말하기 어렵다. exe4j를 모르겠다.

내가 보는 것은 에 ${lib}의 항아리가 있지만 ${dist}/${ant.project.name}.jar을 참조하지 않는다는 것입니다. 따라서 빌드 코드가 실행 파일에 포함되지 않습니다. 그것이 서버가 찾을 수없는 이유입니다 (404).

<!-- Put everything in ${build} into the <Project>.jar file --> 
    <jar jarfile="${dist}/${ant.project.name}.jar" basedir="${build}"/> 

    <!-- Copy MY program into lib to get packed by exe4jc --> 
    <copy file="${dist}/${ant.project.name}.jar" todir="${lib}"/> 

    <!-- Create an exe --> 
    <apply executable="c:\Program Files\exe4j\bin\exe4jc.exe" failonerror="true"> 
     <fileset dir="${lib}"> 
     <patternset> 
      <include name="${ant.project.name}.exe4j"/> 
     </patternset> 
     </fileset> 
    </apply> 
+0

'Leaves64.exe4j' 파일을 포함하고있는''를 호출합니다. 또한 질문에 링크를 걸었습니다.이 파일은' Alvaro

+0

어쩌면 제 편집으로 알 수 있습니다. – PeterMmm

+0

'내 프로그램 복사 ...'아래에 줄을 추가하여 추가하십시오. 동일한 결과가 나타납니다. 개선 없음. – Alvaro