بِسْـــــــــمِ ﷲِالرَّحْمَنِ الرَّحِيم


Kadangkala masalah kecil bisa memberikan impak yang besar kepada kemajuan pembangunan sistem.

Di sini disenaraikan masalah semasa membangunkan sistem EMS untuk rujukan masa hadapan

Tiba-tiba sahaja tidak kenal beberapa library seperti hibernate

Pastikan bahawa pilih profile yang betul sebelum build contohnya pilih profile GF4(local-windows) dan kemudian Build with Dependencies.

Library tiada dalam GIT

Entah kenapa ada masalah dengan beberapa library dan nampaknya tiada siapa mahu bereskan maka kenalah copy secara manual ke dalam folder .m2.

Tetapi cara yang lebih afdal ialah dengan memastikan alamat repository adalah betul.

C:\Users\{nama_user}\.m2\repository

EPAM di Staging asyik return 500

Restart glassfish.

 

EMS asyik redirect ke login page apabila tambah page dan menu baru

Pastikan bahawa config.js point kepada source code ('main' : 'main') bukannya kepada compiled script ('main' : 'main-built').

 

Unknown provider: XxxServiceProvider <- XxxService

Ralat ini dipaparkan dalam console developer panel browser internet.

Masukkan nama file yang kandungi service tersebut (contohnya XxxService) ke dalam file \public_html\js\services\_index.js.

 

EMS stuck di login page, ada mesej Script Error dari requirer.js

 https://requirejs.org/docs/errors.html#scripterror . Setelah disemak semasa baiki isu Unknown provider: XxxServiceProvider <- XxxService di atas, nama file dimasukkan sekali dengan extension .js, sepatutnya hanya masukkan nama file sahaja tanpa extension.

 

POST 400 (Bad Request)

Selalunyalah kan kalau error 400 ni memang kita akan suspect salah request mapping maka habislah masa digunakan untuk periksa request mapping. Akhirnya setelah beberapa proses debug baru dapat dikesan melalui log Glassfish ada error pada SQL.

Masalah juga EMS ni kerana log pada level aplikasi tidak memaparkan error tersebut.

 

You have attempted to set a value of type class java.util.ArrayList for parameter XXX with expected type of class java.lang.String

Sebenarnya memang lah nak hantar list pun tapi kenapa JPA ni expect String pula ya?

Google punya Google, rupa-rupanya tak perlu letak kurungan ye. Jadi tidak perlu ditulis sebegini:

AND (p.Xxx IN (:xxxList))

Sebaliknya cukup ditulis sebegini

AND (p.Xxx IN :xxxList)

 

Papar selected pada <select>

Fuh... makan masa 3 hari nak jumpa jawapan kepada masalah ini. Kita ada dropdown dan kita ada value daripada rekod sedia ada. Kita nak dropdown tu selected seperti mana rekod yang ada.

Tak payah cakap panjang, tengok sahaja kod di bawah ni. Tapi perhatikan value tu guna x.desc sebab ada permintaan istimewa, selalunya kita gunakan code atau id atau bla bla bla...

Bahasa: Angular JS 1

Kata kunci: default value for dropdown

 <select ng-model="r.blockReason" class="form-control input-sm">        <option value="">{{'please_select'| i18n}}</option>        <option ng-repeat="x in blockReasonList" value="{{x.desc}}" ng-selected="r.blockReason===x.desc">{{x.desc}}</option>   </select>  

 

Unrecognized field not marked as ignorable through reference chain

Error ini berlaku di backend. Oleh kerana tiada log yang menunjukkan lokasi error ini dengan tepat, kami assume ia berlaku ketika daoManager.update.

Tetapi ia boleh dipertikaikan kerana data masuk dengan baik ke dalam pangkalan data. Jadi error ini mungkin berlaku selepas itu.

Kami menggunakan corak DTO di mana DTO dalam JSON akan ditukarkan kepada entity, entity akan diproses oleh daoManager sebelum dipulangkan balik kepada Jackson Mapper. Kami suspect error berlaku di sini, sepatutnya kami kembalikan sebagai DTO semula tidak sebagai entity.

Ini adalah kerana error ini memberitahu kita bahawa nama field itu tidak diketemui, kerana kita hantar entity, sedangkan Jackson Mapper cari DTO.

 

org.jboss.weld.util.reflection.Reflections can not access a member of XxxService with modifiers ""

Function tu jadikan public.

 

Masalah job trigger Quartz pada state ERROR

Seharian cuba cari root cause kenapa trigger tu error. Kita tahu error sebab dalam table QRTZ_TRIGGERS pada column TRIGGER_STATE nilainya ialah ERROR.

Tak jumpa root cause tapi adalah log yang agak tak bermakna iaitu:

[2020-09-10T12:44:11.257+0800] [glassfish 4.1] [SEVERE] [] [javax.enterprise.ejb.container] [tid: ThreadID=484 _ThreadName=_ejb-thread-pool11] [timeMillis: 1599713051257] [levelValue: 1000] [[
ejb.stateless_ejbcreate_exception]]

Langsung tak beritahu di mana dan  kenapa error tu berlaku. Anehnya apabila dilarikan dalam local, tak jadi pula error tu.

Tetapi kita boleh buatkan trigger itu berjalan semula dengan edit TRIGGER_STATE tu secara manual! Tukarkan kepada WAITING.

 

Debug tak hit

Dua hari juga cuba membantu kawan. Dia kata tak hit breakpoint walaupun dalam debug console dah paparkan connected to port 9009.

Tedi agak dia silap letak breakpoint, tapi memang dah betul dia letak, patut hit.

Kemudian Tedi suruh dia clean maven la, clean cache netbeans lah, tapi masih gagal.

Akhirnya dia dapat debug setelah copy nginx.conf milik Tedi. Rupa-rupanya dia silap setting point kepada staging, sepatutnya point ke local.

 


~20200815~
jika kiriman ini bermanfaat, tolong lawat iklan yang ada ya, tqvm