Веб-приложение Maven / Spring / MVC - ошибка TalendJob (сторонний Talend - PullRequest
1 голос
/ 25 января 2020

Я разрабатываю веб-приложение Spring / MVC / Maven в Eclipse. Вариант использования - приложение для вызова заданий Talend на основе adho c с параметрами. Пользователь вводит информацию о временных рамках (годы, месяцы) на странице формы. Все работало (форма, проверка, модель, конфигурация, проверка ошибок и т. Д. c), пока я не добавил необходимые банки Talend.

Немного предыстории - я успешно создал простое веб-приложение в Eclipse, которое имеет тот же вариант использования. Для этого приложения мне нужно было поместить банки Talend в папку WEB-INF\lib. По разным причинам мне нужно создать веб-приложение, которое использует технологии Spring / MVC / Maven. Я загрузил все необходимые банки Talend в папку WEB-INF\lib (точно так же, как и в предыдущем веб-приложении). Я успешно выполнил чистую установку Maven. Но при запуске встроенного Tomcat (версия 7.2.2) эта ошибка выглядела так:

[ОШИБКА] ОШИБКА КОМПИЛЯЦИИ: [ОШИБКА] C: \ Documents \ TalendAdHoc \ src \ main \ java \ com \ validator \ UserValidator. java: [13] ошибка: пакет talenddev1.job_gl_master_ad_hoc_0_3 не существует [ОШИБКА] C: \ Documents \ TalendAdHoc \ src \ main \ java \ com \ validator \ UserValidator. java: [141 , 7] ошибка: не удается найти символ.

Затем я следовал инструкциям с этого сайта:

https://cleanprogrammer.net/adding-3rd-party-jar-to-maven-projects/

, чтобы добавить jar сторонних разработчиков для проектов Maven (установил jar в локальный репозиторий, добавил репозиторий и зависимость в pom. xml, et c). При запуске встроенного Tomcat выдается эта ошибка:

[ОШИБКА] ОШИБКА КОМПИЛЯЦИИ: [ОШИБКА] C: \ Documents \ TalendAdHoc \ src \ main \ java \ com \ validator \ UserValidator. java : [155,16] ошибка: невозможно получить доступ к TalendJob

`

TalendJob` is located in the `UserValidator.java`:

    job_GL_Master_Ad_Hoc TalendJob=new job_GL_Master_Ad_Hoc(); 

String[] 
context=new String[] \{params...} 

TalendJob.runJob(context);

Я понимаю, что это может быть проблема с Talend, поэтому я также работал с сообществом Talend .

Любая поддержка будет принята с благодарностью. Дайте мне знать, если вам нужна дополнительная информация.

Спасибо

Вот мой pom. xml

`<modelVersion>4.0.0</modelVersion>
<groupId>com</groupId>
<artifactId>TalendAdHoc</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
  <failOnMissingWebXml>false</failOnMissingWebXml>
</properties>

<dependencies>
<!-- Spring MVC Dependency -->
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>4.3.7.RELEASE</version>
</dependency>

<!-- JSTL Dependency -->
<dependency>
  <groupId>javax.servlet.jsp.jstl</groupId>
  <artifactId>javax.servlet.jsp.jstl-api</artifactId>
  <version>1.2.1</version>
</dependency>

<dependency>
  <groupId>taglibs</groupId>
  <artifactId>standard</artifactId>
  <version>1.1.2</version>
</dependency>

<!-- Servlet Dependency -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>

<!-- JSP Dependency -->
<dependency>
  <groupId>javax.servlet.jsp</groupId>
  <artifactId>javax.servlet.jsp-api</artifactId>
  <version>2.3.1</version>
  <scope>provided</scope>
</dependency>

<dependency>
  <groupId>org.talend</groupId>
  <artifactId>job_gl_master_ad_hoc_0_3</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}/src/lib/job_gl_master_ad_hoc_0_3.jar
  </systemPath>
</dependency>

<dependency>
  <groupId>org.talend</groupId>
  <artifactId>job_gl_refresh_transaction_ad_hoc_0_2</artifactId>
  <version>1.0</version>
  <scope>system</scope>

 <systemPath>${project.basedir}
 /src/lib/job_gl_refresh_transaction_ad_hoc_0_2.jar
  </systemPath>
</dependency>

<dependency>
  <groupId>org.talend</groupId>
  <artifactId>job_gl_load_transaction_ad_hoc_0_2</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}
/src/lib/job_gl_load_transaction_ad_hoc_0_2.jar
  </systemPath>
</dependency>

<dependency>
  <groupId>org.talend</groupId>
  <artifactId>job_gl_load_summary_ad_hoc_0_1</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}
 /src/lib/job_gl_load_summary_ad_hoc_0_1.jar
  </systemPath>
 </dependency>

<dependency>
  <groupId>org.talend</groupId>
  <artifactId>job_gl_load_project_ad_hoc_0_1</artifactId>
  <version>1.0</version>
  <scope>system</scope>
  <systemPath>${project.basedir}
  /src/lib/job_gl_load_project_ad_hoc_0_1.jar
  </systemPath>
</dependency>

</dependencies> 

<build>
<sourceDirectory>src/main/java</sourceDirectory>
<resources>
  <resource>
    <directory>src/main/resources</directory>
  </resource>
</resources>
<plugins>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>

  <plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.5.1</version>
    <configuration>
    <fork>true</fork>
      <executable>C:\Program Files\Java\jdk1.8.0_201\bin\javac.exe
      </executable>
      <source>1.8</source>
      <target>1.8</target>
    </configuration>
  </plugin>

  <!-- Embedded Apache Tomcat required for testing war -->
  <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <version>2.2</version>
    <configuration>
      <path>/</path>
     </configuration>
  </plugin>

  </plugins>
  </build>
  </project>`

А вот UserValidator. java:

`package com.validator;

import java.util.Calendar;

import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;

import com.model.User; 

import talenddev1.job_gl_master_ad_hoc_0_3.job_GL_Master_Ad_Hoc;

@Component
public class UserValidator implements Validator {

@Override
public boolean supports(Class<?> clazz) {
    return User.class.equals(clazz);
}

@Override
public void validate(Object obj, Errors err) {
    User user = (User) obj;

    Calendar cal = Calendar.getInstance();

    set vars...

    validation code...

    error handling code...

    }

    job_GL_Master_Ad_Hoc talendJob = new job_GL_Master_Ad_Hoc();

    String[] context = new String[] { 
   "--context_param Host_Analytics_CurrentYear=" + currentYear,
            "--context_param Host_Analytics_CurrentYearStart=" +
    currentYearStart,
            "--context_param Host_Analytics_CurrentYearEnd=" + currentYearEnd,
            "--context_param Host_Analytics_PreviousYear=" + previousYear,
            "--context_param Host_Analytics_PreviousYearStart=" +
     previousYearStart,
            "--context_param Host_Analytics_PreviousYearEnd=" +
     previousYearEnd,
            "--context_param Host_Analytics_Transaction_Flag=" +
     transactionFlag,
            "--context_param Host_Analytics_Summary_Flag=" + summaryFlag,
            "--context_param Host_Analytics_Project_Flag=" + projectFlag };
     talendJob.runJob(context);

      }
    }`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...