春のJPAがAPIリクエストに投稿する

mashro3ak:

ここで私はfindby関数を使用してmysql dbから行ごとにデータをフェッチしようとしていますが、正常に機能しましたが、次のステップは、APIにアクセスして、必要なデータをテーブルからAPIに渡してhttpからAPIにPOST変更するprocessDateことです日付ですが、実装しようとするとエラーが発生しますcommandlineruner

エラー:

java.lang.IllegalStateException:CommandLineRunnerの実行に失敗しました。原因:java.lang.IllegalMonitorStateException:null

API形式は次のようになります。

{
  "ChannelID":"113", # static string no change on it
  "MSISDN":"XXX", # i have to fill it wil my msisdn 
  "ServiceID":"XXX" i have to fill it with my param1
}

AccessingDataJpaApplicationクラス:

@SpringBootApplication
public class AccessingDataJpaApplication implements CommandLineRunner {

    private static final Logger logger = LoggerFactory.getLogger(AccessingDataJpaApplication.class);
    @Autowired

    private Bulk_repositoryRepository bulk_repositoryRepository;

    public static void main(String[] args) {
        SpringApplication.run(AccessingDataJpaApplication.class);
    }
    Date currentDate = new Date();

    @Override
    public void run(String... args) throws Exception {
         RestTemplate restTemplate = new RestTemplate();
         HttpHeaders headers = new HttpHeaders();
         headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON));
         headers.setBasicAuth("######", "#####");

         while(true) {

            for (Bulk_repository churnss : bulk_repositoryRepository.findAllByStatusAndCampTypeAndCampStartDateLessThanAndCampEndDateGreaterThanEqual(0,54,currentDate,currentDate)) {
                logger.info(churnss.toString());
                AddOfferRequest AddOffer = new AddOfferRequest("113", churnss.getMsisdn(),churnss.getParam1());

                logger.info(AddOffer.toString());
                HttpEntity<AddOfferRequest> entity = new HttpEntity<AddOfferRequest>(AddOffer,headers);

                ResponseEntity<String> responseEntity = restTemplate.exchange(
                "API LINK.......", HttpMethod.POST, entity, String.class);

                if(responseEntity.getStatusCode() == HttpStatus.OK){
                    String response = responseEntity.getBody();
                    logger.info(response);

                    churnss.setStatus(1);
                    churnss.setProcessDate(new Date());
                    logger.info(churnss.toString());
                    bulk_repositoryRepository.save(churnss);
                }
            }
            wait(1000);
        }
    }
}

AddOfferRequestクラス:

public class AddOfferRequest {

    private String ChannelID="113";
    private String MSISDN;
    private String ServiceID;

    public AddOfferRequest() {
    }
    public AddOfferRequest(String channelID,String mSISDN,String serviceID ) {
        this.MSISDN = mSISDN;
        this.ServiceID = serviceID;

    }

    public void setMSISDN(String mSISDN) {
        this.MSISDN = mSISDN;
    }

    public void setServiceID(String serviceID) {
        this.ServiceID = serviceID;
    }

    public String getChannelID() {
        return ChannelID;
    }

    public String getMSISDN() {
        return MSISDN;
    }

    public String getServiceID() {
        return ServiceID;
    }

}

Bulk_repositoryクラス:

@Entity
@Table(name = "BULK_REPOSITORY")
public class Bulk_repository {

   @Id
   @GeneratedValue(strategy=GenerationType.AUTO)
   @Column(name = "id")
   private long id;

   @Column(name = "msisdn")
   private String msisdn;

   @Column(name = "camp_start_date")   
   private Date campStartDate;

   @Column(name = "camp_end_date")
   private Date campEndDate;

   @Column(name = "camp_type")
   private int campType;

   @Column(name = "camp_cd")
   private String camp_cd;

   @Column(name = "status")
   private int status;

   @Column(name = "process_date")
   private Date processDate;

   @Column(name = "entry_date")
   private Date entryDate;

   @Column(name = "entry_user")
   private String entry_user;

   @Column(name = "param1")
   private String param1;

   @Column(name = "param2")
   private String param2;

   @Column(name = "param3")
   private String param3;

   @Column(name = "param4")
   private String param4;

   @Column(name = "param5")
   private String param5;

   @Column(name = "error_desc")
   private String error_desc;

   @Column(name = "fulfilment_status")
   private int fulfilment_status;
## then getter and setters and to tostring

Bulk_repositoryRepositoryクラス:

public interface Bulk_repositoryRepository extends CrudRepository<Bulk_repository, Long> {
      List<Bulk_repository>findAllByStatusAndCampTypeAndCampStartDateLessThanAndCampEndDateGreaterThanEqual(int status, int campType,Date currentDate, Date currentDate1);

      Bulk_repository findById(long id);
}

スタックトレース :

2019-10-26 17:25:47.563  INFO 10275 --- [           main] c.e.a.AccessingDataJpaApplication        : Starting AccessingDataJpaApplication on ubuntu with PID 10275 (/home/devops/Documents/workspace-spring-tool-suite-4-4.4.0.RELEASE/gs-accessing-data-jpa-complete/target/classes started by devops in /home/devops/Documents/workspace-spring-tool-suite-4-4.4.0.RELEASE/gs-accessing-data-jpa-complete)
2019-10-26 17:25:47.572  INFO 10275 --- [           main] c.e.a.AccessingDataJpaApplication        : No active profile set, falling back to default profiles: default
2019-10-26 17:25:50.970  INFO 10275 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data repositories in DEFAULT mode.
2019-10-26 17:25:51.141  INFO 10275 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 149ms. Found 1 repository interfaces.
2019-10-26 17:25:51.948  INFO 10275 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$58bd9157] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-10-26 17:25:52.578  INFO 10275 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8080 (http)
2019-10-26 17:25:52.693  INFO 10275 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2019-10-26 17:25:52.711  INFO 10275 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.22]
2019-10-26 17:25:53.002  INFO 10275 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2019-10-26 17:25:53.003  INFO 10275 --- [           main] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 5219 ms
2019-10-26 17:25:53.389  INFO 10275 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2019-10-26 17:25:53.790  INFO 10275 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
2019-10-26 17:25:53.891  INFO 10275 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2019-10-26 17:25:54.339  INFO 10275 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.3.10.Final}
2019-10-26 17:25:54.342  INFO 10275 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2019-10-26 17:25:54.755  INFO 10275 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.4.Final}
2019-10-26 17:25:55.225  INFO 10275 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2019-10-26 17:25:56.861  INFO 10275 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2019-10-26 17:25:54.214  INFO 10275 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Initializing ExecutorService 'applicationTaskExecutor'
2019-10-26 17:25:54.299  WARN 10275 --- [           main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2019-10-26 17:25:54.798  INFO 10275 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 8080 (http) with context path ''
2019-10-26 17:25:54.804  INFO 10275 --- [           main] c.e.a.AccessingDataJpaApplication        : Started AccessingDataJpaApplication in 9.283 seconds (JVM running for 16.131)
2019-10-26 17:25:54.908  INFO 10275 --- [           main] o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory
2019-10-26 17:25:55.220  INFO 10275 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-10-26 17:25:55.236 ERROR 10275 --- [           main] o.s.boot.SpringApplication               : Application run failed

java.lang.IllegalStateException: Failed to execute CommandLineRunner
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:783) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE]
    at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:764) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:319) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1214) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE]
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:1203) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE]
    at com.example.accessingdatajpa.AccessingDataJpaApplication.main(AccessingDataJpaApplication.java:38) ~[classes/:na]
Caused by: java.lang.IllegalMonitorStateException: null
    at java.base/java.lang.Object.wait(Native Method) ~[na:na]
    at com.example.accessingdatajpa.AccessingDataJpaApplication.run(AccessingDataJpaApplication.java:71) ~[classes/:na]
    at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:780) ~[spring-boot-2.1.7.RELEASE.jar:2.1.7.RELEASE]
    ... 5 common frames omitted

2019-10-26 17:25:55.269  INFO 10275 --- [           main] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2019-10-26 17:25:55.270  INFO 10275 --- [           main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2019-10-26 17:25:55.278  INFO 10275 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2019-10-26 17:25:55.298  INFO 10275 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.
セリンデク:

Object.wait()が機能するには、同期されたブロック内にいる必要があります。マルチスレッド環境でスレッドを同期するために使用されます。しかし、私はあなたが単に最新の結果をログに記録する間にコードが少し待つことを望んでいると思います。

Thread.sleep(1000)代わりに使用してください

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

春のJPAがAPIリクエストに投稿する

分類Dev

春のブートレストJPAクエリは、電子メールによるクエリでnullオブジェクトを返します

分類Dev

過去4時間に投稿された投稿をソートするJPAクエリが必要

分類Dev

クレイグズリストに投稿するためのAPI

分類Dev

春:FrameworkServlet.processRequestが正常に完了したリクエストの後にハングする

分類Dev

400(不正なリクエスト)APIに投稿するときに2回目

分類Dev

春の最初のリクエストが非常に遅い

分類Dev

api getリクエストは失敗しますが、作業の投稿、配置、削除

分類Dev

投稿する文字列リクエストにエラーが表示されない

分類Dev

このSpring Bootアプリが投稿リクエストに対して例外をスローする理由

分類Dev

ペイパルレストAPIを春のJPAアプリケーションに統合する方法。エラーコード400

分類Dev

永続化する前に、春の豆の検証を可能にするが、HTTPリクエストのために無視する方法

分類Dev

Angular / TornadoのWebサイトにリクエストを投稿する

分類Dev

HTTP-リクエスト付きの投稿が失敗する:BadStatusLine

分類Dev

改造リクエストの本文に生のjsonを投稿する方法は?

分類Dev

リセットボタンがクリックされた後に投稿リクエストを送信する

分類Dev

Pythonでリクエスト取得の代わりにリクエスト投稿を使用する

分類Dev

春のジャクソン呼び出しの前にhttpポストリクエスト本文を取得する

分類Dev

春にサーバーの投稿で他のリンクをリダイレクトする方法

分類Dev

一意のキーなしでFirebaseにリクエストを投稿する

分類Dev

純粋にHTTPリクエスト本文を使用するための投稿

分類Dev

検証付きのフォームにリクエストを投稿する

分類Dev

デモリクエストをkubuntu18のelasticsearchに投稿する方法

分類Dev

ノードのjsonにリクエストデータを投稿する

分類Dev

AjaxリクエストからPHPに複数の値を投稿する

分類Dev

Python:リクエスト本文にキーと値のペアを投稿する

分類Dev

Androidへの投稿をリクエストする際の問題

分類Dev

IDによる不正なリクエストAngularNodeの投稿

分類Dev

リクエスト本文に有効なjsonを投稿するjQuery

Related 関連記事

  1. 1

    春のJPAがAPIリクエストに投稿する

  2. 2

    春のブートレストJPAクエリは、電子メールによるクエリでnullオブジェクトを返します

  3. 3

    過去4時間に投稿された投稿をソートするJPAクエリが必要

  4. 4

    クレイグズリストに投稿するためのAPI

  5. 5

    春:FrameworkServlet.processRequestが正常に完了したリクエストの後にハングする

  6. 6

    400(不正なリクエスト)APIに投稿するときに2回目

  7. 7

    春の最初のリクエストが非常に遅い

  8. 8

    api getリクエストは失敗しますが、作業の投稿、配置、削除

  9. 9

    投稿する文字列リクエストにエラーが表示されない

  10. 10

    このSpring Bootアプリが投稿リクエストに対して例外をスローする理由

  11. 11

    ペイパルレストAPIを春のJPAアプリケーションに統合する方法。エラーコード400

  12. 12

    永続化する前に、春の豆の検証を可能にするが、HTTPリクエストのために無視する方法

  13. 13

    Angular / TornadoのWebサイトにリクエストを投稿する

  14. 14

    HTTP-リクエスト付きの投稿が失敗する:BadStatusLine

  15. 15

    改造リクエストの本文に生のjsonを投稿する方法は?

  16. 16

    リセットボタンがクリックされた後に投稿リクエストを送信する

  17. 17

    Pythonでリクエスト取得の代わりにリクエスト投稿を使用する

  18. 18

    春のジャクソン呼び出しの前にhttpポストリクエスト本文を取得する

  19. 19

    春にサーバーの投稿で他のリンクをリダイレクトする方法

  20. 20

    一意のキーなしでFirebaseにリクエストを投稿する

  21. 21

    純粋にHTTPリクエスト本文を使用するための投稿

  22. 22

    検証付きのフォームにリクエストを投稿する

  23. 23

    デモリクエストをkubuntu18のelasticsearchに投稿する方法

  24. 24

    ノードのjsonにリクエストデータを投稿する

  25. 25

    AjaxリクエストからPHPに複数の値を投稿する

  26. 26

    Python:リクエスト本文にキーと値のペアを投稿する

  27. 27

    Androidへの投稿をリクエストする際の問題

  28. 28

    IDによる不正なリクエストAngularNodeの投稿

  29. 29

    リクエスト本文に有効なjsonを投稿するjQuery

ホットタグ

アーカイブ