2017-07-14 10 views
0

mvn testを開始するとき、すべてのテストが正しいです。私は開始された統合テストを確認することを知っている。例外maven - ベリファイ

私のIDEでテストを実行すると、この例外が発生します。 何故ですか?

スタックによって引き起こさ

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not extract ResultSet 
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert (AbstractEntityManagerImpl.java:1692) 
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert (AbstractEntityManagerImpl.java:1602) 
    at org.hibernate.jpa.internal.QueryImpl.getSingleResult (QueryImpl.java:560) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:372) 
    at com.sun.proxy.$Proxy99.getSingleResult(Unknown Source) 
    at com.datas_tech.ingo.core.repository.jpa.implementation.AisRepositoryImpl.getAisId(AisRepositoryImpl.java:34) 
    at com.datas_tech.ingo.core.repository.jpa.AisRepositoryITest.testGetAisId(AisRepositoryITest.java:37) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) 
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) 
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) 
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) 
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26) 
    at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75) 
    at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86) 
    at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84) 
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) 
    at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252) 

stack-マイ例外:

Caused by: org.hibernate.exception.GenericJDBCException: could not extract ResultSet 
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:47) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:109) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:95) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2117) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1900) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1876) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:919) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:336) 
    at org.hibernate.loader.Loader.doList(Loader.java:2617) 
    at org.hibernate.loader.Loader.doList(Loader.java:2600) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2429) 
    at org.hibernate.loader.Loader.list(Loader.java:2424) 
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:336) 
    at org.hibernate.internal.SessionImpl.listCustomQuery(SessionImpl.java:1967) 
    at org.hibernate.internal.AbstractSessionImpl.list(AbstractSessionImpl.java:322) 
    at org.hibernate.internal.SQLQueryImpl.list(SQLQueryImpl.java:125) 
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:606) 
    at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:529) 
    ... 39 more 
Caused by: java.sql.SQLException: ORA-20001: �� ��������� �������� � ����� �������! 
ORA-06512: at "INSURADM.PACK_PORTAL_PROC", line 574 

コード:スタックの底に

@Override 
public Long getAisId(String aisAgeementNumber, String phoneNumber, Integer portalId) { 
    String query = "SELECT insuradm.PACK_PORTAL_PROC.FindFromTel(:p_ag_num, :p_tel, :p_portal_sub_id) FROM DUAL"; 
    try { 
     Long aisId = (Long) entityManager 
       .createNativeQuery(query) 
       .setParameter("p_ag_num", aisAgeementNumber) 
       .setParameter("p_tel", phoneNumber) 
       .setParameter("p_portal_sub_id", portalId) 
       .getSingleResult(); 
     return aisId; 
    } catch (Exception e) { 
     e.printStackTrace(); 
     return null; // TODO определиться что лучше, Exception или null 
    } 
} 

答えて

0

右がこれです:

java.sql.SQLException:ORA-20001: ! ORA-06512:「INSURADM.PACK_PORTAL_PROC」で、ライン574

だからあなたのパッケージINSURADM.PACK_PORTAL_PROCは、ユーザ定義の例外を投げつけるている(ORA-20001 Oracleは私たち自身のエラーのために確保された範囲内です)。恐らくあなたはエラーメッセージを読むことができますか? Unicodeで書かれているように見えるので、見えません。

いずれにしても、エラーの原因を理解するには、INSURADM.PACK_PORTAL_PROCにドリルダウンする必要があります。スタックは、たとえ問題の原因となる行ではなく例外ハンドラかもしれませんが、開始場所 - 行574を指示します。問題を診断することは、PL/SQLコードの品質、特に計測器がどれぐらい良好であり、どれくらい包括的なログが得られるかによって異なります。

あなたのMavenインスタンスが、テストをローカルで実行するときとは異なるデータベースを指している可能性が最も高い説明です。したがって、テストデータには例外が発生する可能性があるため、さまざまなバリエーションがあります。例外を発生させる正確なコードを見つけ、それを引き起こす状況を理解する必要があります。

ユーザ定義の例外であるため、を名前付き例外変数に関連付けるpragma exception_init宣言を見つける必要があります。その例外のRAISEを見つけるよりも、運があれば、起こる場所は1つだけです。少なくとも1つの明白な場所です。

+0

ありがとうございました –

+0

DBメッセージがDB内のそのデータを返さないという問題があると思います –

関連する問題