LocDV Blog

Chia sẻ là hạnh phúc
Những lỗi thường gặp khi sử dụng intra-mart

Những lỗi thường gặp khi sử dụng intra-mart

Dạo gần đây mình được vào 1 dự án Java .dùng framework intra-mart và server Resin.Đây là framework theo mình khá hoàn chỉnh và triển khai nhanh. Tuy  nhiên trong quá trình build project, server cũng gặp khá nhiều lỗi.Hầu hết thì đã có giải pháp ở trên internet. Mình viết post này để note lại những bug thường gặp để các bạn nào có dùng intra-mart thì kham khảo cho tiện.(Tìm hiểu thì mới thấy khả năng chia sẻ kinh nghiệm của người Nhật cực kì tốt).

Mình sẽ tổng hợp trong quá trình việc nên post này sẽ up to date.

1.Khi mở màn hình login thì xuất hiện lỗi NoClassDefFoundError

Nguyên nhân: Setting trong file routing-jssp-config bị sai => Kiểm tra file routing xem có bị lỗi cú pháp hay không , fix và restart lại resin

Cũng có thể nguyên nhân khai báo sai kiểu dữ liệu, hoặc kiểu dữ liệu đó không được hỗ trợ bởi framework. Ví dụ khi sử dụng 1 lib thì lib đó chỉ quy định dùng List<String> mà không dùng List<Object> chẳng hạn, thì khi bạn dùng cũng sẽ báo lỗi này.


javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class jp.co.intra_mart.foundation.router.RouterFactory$LazyHolder javax.servlet.ServletException: java.lang.NoClassDefFoundError: Could not initialize class jp.co.intra_mart.foundation.router.RouterFactory$LazyHolder at com.caucho.server.dispatch.FilterManager.createFilter(FilterManager.java:234) at com.caucho.server.dispatch.FilterMapper.buildDispatchChain(FilterMapper.java:169) at com.caucho.server.webapp.WebApp.buildInvocation(WebApp.java:4119) at com.caucho.server.webapp.WebAppContainer.buildInvocation(WebAppContainer.java:798) at com.caucho.server.host.Host.buildInvocation(Host.java:753) at com.caucho.server.host.HostContainer.buildInvocation(HostContainer.java:319) at com.caucho.server.cluster.ServletService.buildInvocation(ServletService.java:1064) at com.caucho.server.dispatch.InvocationServer.buildInvocation(InvocationServer.java:250) at com.caucho.server.dispatch.InvocationServer.buildInvocation(InvocationServer.java:223) at com.caucho.server.http.AbstractHttpRequest.buildInvocation(AbstractHttpRequest.java:1609) at com.caucho.server.http.AbstractHttpRequest.getInvocation(AbstractHttpRequest.java:1582) at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:820) at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:1353) at com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:1309) at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:1293) at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:1201) at com.caucho.network.listen.TcpSocketLink.handleAcceptTaskImpl(TcpSocketLink.java:997) at com.caucho.network.listen.ConnectionTask.runThread(ConnectionTask.java:117) at com.caucho.network.listen.ConnectionTask.run(ConnectionTask.java:93) at com.caucho.network.listen.SocketLinkThreadLauncher.handleTasks(SocketLinkThreadLauncher.
java:169) at com.caucho.network.listen.TcpSocketAcceptThread.run(TcpSocketAcceptThread.java:61) at com.caucho.env.thread2.ResinThread2.runTasks(ResinThread2.java:173) at com.caucho.env.thread2.ResinThread2.run(ResinThread2.java:118) Caused by: java.lang.NoClassDefFoundError: Could not initialize class jp.co.intra_mart.foundation.router.RouterFactory$LazyHolder at jp.co.intra_mart.foundation.router.RouterFactory.getRouter(RouterFactory.java:73) at jp.co.intra_mart.foundation.router.RoutingFilter.init(RoutingFilter.java:50) at com.caucho.server.dispatch.FilterManager.createFilter(FilterManager.java:204) ... 22 more

Tham khảo link ở đây : http://im.hatenablog.jp/entry/2018/04/18/131017

2. Lỗi IntramartDialectAutoSelector が NullPointerException

Nếu một ngày nào đó mà khi bạn login vào hệ thống intramart mà gặp lỗi này, không biết nguyên nhân tại sao.Vì lỗi này sẽ không có log cụ thể, mà chỉ chung chung như bên dưới. Thì nguyên nhân là do bạn setting: thông tin của tenant default không có trong data-source-mapping-config.xml(Trong quá trình tạo mới tenant tick nhầm nút default)


java.lang.NullPointerException
at jp.co.intra_mart.mirage.ext.dialect.IntramartDialectAutoSelector.
getDialect(IntramartDialectAutoSelector.java:25)
atjp.co.intra_mart.mirage.ext.dialect.IntramartDialectAutoSelector.
getTenantDatabaseDialect(IntramartDialectAutoSelector.jaa:13)at jp.co.intra_mart.mirage.ext.session.IntramartDatabaseManagerSession.
getTenantDatabaseSqlManager(IntramartDatabaseManagerSession.java:173)
at jp.co.intra_mart.mirage.ext.dao.DAOFactory.getTenantDatabaseDAO(DAOFactory.java:96)
...

Tham khảo link ở đây : http://09.hatenadiary.jp/entry/2016/04/15/070000

3. Cách để xem log debug, trace đầy đủ của resin

Khi chạy trên server thì có nhiều bug sẽ không hiện log: ví dụ như log liên quan đến data. Vì vậy để hiển thị tường minh và dễ dàng debug được thì bạn nên setting như bên dưới đây:

Tham khảo link ở đây : http://final.hateblo.jp/entry/2016/05/02/233956

4.Khi gặp cảnh báo JobStoreMirageSession xuất hiện liên tục ở log

Nguyên nhân do time ở server và local không mapping với nhau, nên dấn đến sai khác và QuartzScheduler chạy không đồng bộ.

Tham khảo link ở đây :

http://im.hatenablog.jp/entry/2017/12/26/181423

http://09.hatenadiary.jp/entry/2015/07/14/113232

Cách fix thì tham khảo ở đây : http://jisakupc-technical.info/web-survice/4136/

5.Khi gặp log リソースグループが登録されていません:

Lỗi hiển thị như bên dưới

jp.co.intra_mart.foundation.authz.services.ResourceNotFoundException:
[E.IWP.AUTHZ.DECISION.10007] リソースグループが登録されていません。 URI = service://test/test

Nguyên nhân: do hệ thống không nhận được thông tin của routing-xxx-config/***.xml

Cách làm như sau :https://www.intra-mart.jp/document/library/iap/public/iap_release_note/texts/limitations/authz.html

1.Mở source code rồi comment đoạn liên quan đến  service://test/test
%CONTEXT_PATH%/WEB-INF/conf/routing-xxx-config/***.xml

2.Từ menu xoá menu liên quan đến 認可 ở trên, hoặc đổi tên service cũng được

3,Setting lại bước 1, và khởi động lại server

4.Mở 認可リソース và đăng kí lại service://test/test

(Visited 309 times, 1 visits today)

Leave comment

Your email address will not be published. Required fields are marked with *.