2014-07-08 3 views
4

내가 유지하는 프로젝트는 소스 코드를 생성하기 위해 axis-maven-plugin을 사용합니다. 이 소스 코드는 PDF 생성기 서비스 호출에 사용됩니다.Axis 생성 코드에서 하드 코드 된 URL을 피하는 방법은 무엇입니까?

그러나 서비스에 대한 URL은 생성 된 Java 코드에 하드 코딩되어 있습니다.

public class GenerateReportServServiceLocator 
      extends org.apache.axis.client.Service 
      implements com.company.GenerateReportServService 
{ 
    // ... 

    // Use to get a proxy class for GenerateReportServ 
    private java.lang.String GenerateReportServ_address = 
    /* Hardcoded URL */ "http://host:port/PdfEngine/GenerateReportServ.jws"; 

    // ... 
} 

url을 찾기 위해 등록 정보 구성 파일을 사용하도록 axis-maven-plugin에 어떻게 지시 할 수 있습니까?

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>axistools-maven-plugin</artifactId> 
    <version>1.4</version> 
    <configuration> 
     <urls> 
      <url>http://host:port/PdfEngine/GenerateReportServ.jws</url> 
     </urls> 
     <packageSpace>com.company.project.core.pdf.engine</packageSpace> 
     <outputDirectory>${project.build.directory}/generated-sources</outputDirectory> 
    </configuration> 
    <dependencies> 
     // ... 
    </dependencies> 
    <executions> 
     <execution> 
      <id>generate-ws-service-impression</id> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 
+0

런타임시 엔드 포인트를 구성 할 수 있습니까? 왜 서비스 클라이언트를 프로비저닝하기 전에 포트에 엔드 포인트를 설정하는 유틸리티 유형을 제공하지 않는가? – McDowell

+1

@McDowell 실제로 Axis에 의해 생성 된 코드에서 url은 다른 많은 장소에서 하드 코드됩니다. 응용 프로그램이 프로덕션으로 이동하고 W $ 이동 (예 : URL 변경)되면 응용 프로그램을 다시 컴파일하고 프로덕션으로 다시 배포해야합니다. 이렇게하면 ** 속성 파일의 장점 **이 사라집니다. Axis에 의해 생성 된 클래스를 신중하게 구성하거나 누락 된 ** 환경 독립성 **을 추가하기 위해 Axis 클래스에서 상속받은 사용자 정의 클래스를 만드는 두 가지 옵션이 있습니다. 어느 쪽이든, 그것은 단지 고통! – Stephan

+0

해결 방법을 찾으셨습니까? 그건 그렇고, Axis의 문제라고 생각합니다. [Axis Tools Maven Plugin] (http://www.mojohaus.org/axistools-maven-plugin/)과 'wsdl2java'를 실행했을 때 같은 결과를 얻었습니다. Axis 1.4 바이너리 패키지. – watery

답변

0

나는이 문제를 피하기위한 축에서 어떤 옵션을 찾을 수 없습니다 : 여기

는 치어 파일입니다. 결과적으로 Axis에 의해 생성 된 코드를 이전에 다시 작성하기로 결정했습니다.

나를위한 기회, 나는 소수의 수업 만 쓸 필요가있었습니다. 내 코드는 이제 환경에 독립적입니다.