20/11/2022
Introduktion til Oracle JDeveloper og ADF
Oracle JDeveloper er en integreret udviklingsmiljø (IDE) der tilbyder en komplet, grafisk baseret udviklingsoplevelse til Oracle Application Development Framework (ADF), Java, XML, HTML, JavaScript, SQL, PL/SQL og Web Services. ADF er et Java-baseret framework, der forenkler udviklingen af enterprise webapplikationer. Det giver en struktureret tilgang til at bygge applikationer ved at tilbyde et sæt af teknologier og services, der dækker alle lag af en typisk applikationsarkitektur, fra datalag til brugergrænseflade.

Dette dokument vil guide dig gennem de forskellige aspekter af JDeveloper og ADF, med fokus på at give dig den nødvendige viden til at komme i gang og håndtere almindelige udviklingsscenarier. Vi vil udforske de tilgængelige tutorials, definere kernen i JDeveloper og ADF, og se på typiske problemer og løsninger, der kan opstå under udviklingen.
Hvad er Oracle JDeveloper og Application Developer Framework (ADF)?
Oracle JDeveloper er en kraftfuld IDE, der er designet til at strømline udviklingsprocessen for Oracle-baserede applikationer. Den tilbyder en bred vifte af funktioner, herunder koderedigering, debugging, testning og deployment, alt sammen inden for en intuitiv grafisk brugerflade. JDeveloper understøtter en række forskellige udviklingsparadigmer, men dens primære styrke ligger i udviklingen af applikationer ved hjælp af Oracle Application Development Framework (ADF).
ADF er et omfattende framework, der bygger oven på standard Java EE-teknologier og tilføjer et lag af abstraktion og værktøjer, der accelererer udviklingen af robuste, datadrevne webapplikationer. ADF består af flere nøglekomponenter:
- ADF Business Components: Et sæt af genanvendelige, objektorienterede komponenter, der håndterer applikationens forretningslogik og dataintegration. Dette inkluderer Entity Objects (EOs), View Objects (VOs) og Application Modules (AMs).
- ADF Controller: Håndterer applikationens navigationsflow ved hjælp af Task Flows, som definerer sekvensen af brugergrænsefladevisninger og logikken mellem dem.
- ADF Faces: Et sæt af JSF-komponenter, der leverer en rig og responsiv brugergrænseflade. Det inkluderer AJAX-integration, komponenter til datavisualisering (DVT) og understøttelse af designsystemer som Alta UI.
- ADF Data Binding: Gør det muligt at binde brugergrænsefladekomponenter direkte til forretningslogikken, hvilket reducerer mængden af boilerplate-kode, der skal skrives.
- ADF Desktop Integration: Tillader udviklere at bygge Excel-baserede applikationer, der er integreret med ADF-applikationer.
Sammen tilbyder JDeveloper og ADF en komplet platform til at bygge moderne, enterprise-grade webapplikationer.
Kom godt i gang med JDeveloper 12c Tutorials
Oracle tilbyder en række detaljerede tutorials for at hjælpe udviklere med at lære og mestre JDeveloper og ADF. Disse tutorials er designet til at give trin-for-trin instruktioner til almindelige opgaver og giver baggrundsviden for at forstå de underliggende koncepter. Når du bruger JDeveloper 12c, er det vigtigt at følge tutorials, der er specifikke for din version. Hvis du bruger en anden version, kan du opleve visse uoverensstemmelser. Du kan finde tutorials for forskellige versioner ved at bruge navigationsmenuen på Oracle's hjemmeside.
Nogle af de fremhævede tutorial-kategorier inkluderer:
- Introduction to Oracle ADF Development: Lær at bygge en komplet rich Internet-applikation, der interagerer med en database.
- Build Responsive Web Applications with Oracle ADF: Fokuserer på at skabe webapplikationer med en rig brugergrænseflade, der udnytter Oracle Alta UI designsystemet.
- Oracle Cloud Integration: Vejledninger til at integrere dine ADF-applikationer med Oracle Cloud Services, herunder brug af Maven og Ant til kodestyring og automatisering af builds.
- ADF Faces: Dybdegående vejledning i at udvikle brugergrænseflader med ADF Faces rich client JSF-komponenter, herunder AJAX, templates og skinning.
- ADF Controller: Lær at arbejde med Bounded Task Flows, Regions og Routers for at skabe genanvendelige JSF-flows.
- ADF Data Binding: Vejledninger til at oprette databundne applikationer ved hjælp af JavaBeans og ADF Faces.
- ADF Desktop Integration: Kom i gang med at udvikle Excel-integrerede applikationer.
Almindelige Udfordringer og Løsninger i JDeveloper og ADF
Under udviklingen med JDeveloper og ADF kan man støde på forskellige udfordringer. Nedenfor er en oversigt over nogle almindelige problemer, der er rapporteret, og som kan give indsigt i potentielle faldgruber:
ADF Faces Relaterede Problemer
ADF Faces er kernen i brugergrænsefladen, og mange rapporterede fejl relaterer sig til dens funktionalitet.

| Fejl ID | Beskrivelse | Potentiel Løsning / Kontekst |
|---|---|---|
| 20735338 | AF:BUTTON invokerer ikke popup på IE11 den anden gang. | Kan skyldes browser-specifikke JavaScript-kompatibilitetsproblemer eller håndtering af event listeners. |
| 20413237 | AF:INPUTDATE standardtid er forkert (standard til 19:00:00 med US OS locale). | Dette kan indikere et problem med tidszonehåndtering eller standardformatering af dato/tid. |
| 20370874 | Tilføjelse af kolonne til tabel nulstiller/mister andre tabelattributter. | Potentielt et problem med, hvordan JDeveloper håndterer ændringer i tabelstrukturen eller dens metadata. |
| 19945649 | Dashboard + PanelBox ShowMaximize mangler under Alta. | Kan være relateret til CSS eller JavaScript-konflikter, især når man bruger Alta UI-temaet. |
| 19767208 | Fejl i validering af obligatoriske felter og LOV i AF:QUERY. | Dette peger på potentielle problemer med valideringslogik eller integrationen mellem LOV (List of Values) og query-komponenter. |
| 19590390 | Valideringsfejl, selvom formatet er korrekt (DDD datoformat patch). | Kan skyldes forkert fortolkning af datoformater eller fejl i valideringsreglerne. |
| 18886249 | ADF Tree Table problem med scroll og find. | Scroll- og søgefunktionalitet i komplekse tabeller kan være udfordrende at implementere korrekt. |
| 18311330 | Rækkefølge af menupunkter i PanelCollectionView ændret efter opgradering til 12c. | Opgraderinger kan introducere uventede ændringer i komponentadfærd eller layout. |
| 18281658 | Uønskede tomme kolonner tilføjet til AF:TABLE ved omarrangering eller skjuling af kolonner. | Kan skyldes fejl i håndteringen af dynamiske tabelændringer. |
| 18126051 | Tabel sorteringsikoner forsvinder efter klik nær header-kolonne kant. | Visuelle fejl kan opstå på grund af interaktion med UI-elementer. |
| 17739577 | AF:TABLE paginering: indtastning af '0' udløser valideringsduplikat og konkatenering. | Problemer med inputvalidering og nummerhåndtering i paginering. |
| 16918728 | AF:INPUTTEXT med maksimumslængde opfører sig forkert med koreanske/kinesiske tegn. | Håndtering af multibyte-tegn kan være en udfordring for visse komponenter. |
ADF Data Binding og Business Components Udfordringer
Problemer i datalaget eller databindingen kan have vidtrækkende konsekvenser for applikationens funktionalitet.
| Fejl ID | Beskrivelse | Potentiel Løsning / Kontekst |
|---|---|---|
| 20535248 | Problem i AF:TABLE filter efter brug af 'Value is NULL'/'Is NOT NULL'. | Kan skyldes fejl i, hvordan filterkriterier for null-værdier genereres eller fortolkes af View Object. |
| 19301974 | ADF TABLE FILTER kaster IllegalArgumentException på ugyldigt søg. | Ugyldige input til filterfunktioner kan føre til exceptions. |
| 18457684 | Master-detail side virker ikke korrekt. | Ofte et problem med at etablere og vedligeholde relationen mellem master- og detail-view objects. |
| 18385864 | Lokal kopi af WSDL overskrives under datakontroloprettelse. | Kan være relateret til cache-mekanismer eller filhåndtering i JDeveloper. |
| 5758992 | Ved fejl i attributvalidering nulstiller JBO DC attributværdien, hvilket forårsager genvalidering. | Standardadfærd, men kan være uønsket i visse scenarier. Kræver muligvis tilpasning af valideringslogikken. |
| 19771991 | ClassCastException ved filtrering af AF:TABLE kolonne af type Date / ArrayList under. | Typekonverteringsfejl, ofte relateret til, hvordan data håndteres og filtreres i View Object. |
| 19608381 | Udviklet VO kan ikke ændre UI hints for ny LOV. | Kan skyldes begrænsninger i, hvordan UI hints nedarves eller overskrives i udvidede View Objects. |
| 18767637 | Oracle.jbo.NoObjectException: JBO-25003: Objekt XX af type View Object i AM tester. | Indikerer, at et forventet objekt ikke blev fundet eller initialiseret korrekt i Application Module. |
| 17575028 | Exists View Criteria fejler i 12.1.2.0.0, når VO kilde er SQL Query. | Specifik versionsfejl, muligvis relateret til, hvordan View Criteria genereres fra SQL-kilder. |
Generelle JDeveloper Udfordringer
Problemer med selve IDE'en eller dens integration med andre systemer kan også opstå.
| Fejl ID | Beskrivelse | Potentiel Løsning / Kontekst |
|---|---|---|
| 20454673 | JDev langsom eller fryser ved redigering af JSPX/JSFF-side for stor applikation. | Performance-problemer i IDE'en, ofte relateret til kompleksitet, store projekter eller manglende ressourcer. |
| 20062838 | Webservice klient crasher ved debugging med fast swap i JDeveloper 12.1.3. | Problemer med debugging-miljøet eller håndtering af dynamiske opdateringer under kørsel. |
| 19911630 | Deployment plan håndhæves ikke, når app path indeholder mellemrum. | Fejl i deployment-processen, der kan skyldes specielle tegn i filstier. |
| 19780605 | JDeveloper crasher ved oprettelse af View Object fra custom SQL Query fra z/OS DB2. | Problemer med at interagere med specifikke databaser eller generere objekter fra komplekse queries. |
| 19508497 | JDeveloper bruger forkert katalog/schema på DB2 på z/OS. | Konfigurationsproblemer med databaseforbindelser eller JDeveloper's skema-håndtering. |
| 18845149 | ArrayIndexOutOfBoundsException kastet efter valg af ny kolonneoption i audit. | Fejl i audit- eller refactoring-funktioner. |
| 18715943 | Perforce plugin bør understøtte SSL-operation. | Manglende funktionalitet eller integration med versionsstyringssystemer. |
| 18693755 | JDEV IDE proxy fejl ved genstart. | Problemer med IDE'ens netværkskonfiguration eller cache. |
| 18219159 | Refactor/Move på multi-ADFBC komponenter flytter kun den første. | Begrænsninger i refactoring-værktøjer for komplekse, forbundne komponenter. |
| 8728795 | SQLDev4.1: Understøtter oprettelse af "PARTITION BY REFERENCE" i Create Table dialog. | Selvom dette er for SQL Developer, indikerer det, at visse database-specifikke funktioner måske ikke er fuldt integreret i JDeveloper's database-værktøjer. |
Fremtidige Overvejelser og Best Practices
Når du arbejder med JDeveloper og ADF, er det afgørende at følge best practices for at minimere fejl og sikre en effektiv udviklingsproces.
- Hold din JDeveloper opdateret: Oracle frigiver jævnligt patches og opdateringer, der retter fejl og forbedrer ydeevnen.
- Forstå dit framework: Dybdegående kendskab til ADF-komponenterne og deres interaktion er nøglen til at undgå mange almindelige problemer.
- Brug versionsstyring: Integrer med systemer som Git eller Perforce for at spore ændringer og muliggøre nem rollback.
- Test grundigt: Implementer en robust teststrategi, der inkluderer enhedstest, integrationstest og brugeraccepttest.
- Håndter fejl elegant: Implementer global fejlhåndtering og brugerdefinerede fejlhåndteringssider for at give en bedre brugeroplevelse.
- Optimer ydeevnen: Vær opmærksom på ydeevnen af dine datakontroller, queries og brugergrænsefladekomponenter, især i store applikationer.
Afsluttende Bemærkninger
Oracle JDeveloper og ADF udgør en kraftfuld kombination for udvikling af moderne Java EE-applikationer. Selvom der kan opstå udfordringer, giver den rige samling af tutorials, dokumentation og et aktivt community de nødvendige ressourcer til at overvinde dem. Ved at forstå kernekoncepterne, følge best practices og aktivt søge løsninger på almindelige problemer, kan du udnytte JDeveloper og ADF's fulde potentiale til at bygge skalerbare og robuste applikationer.
Hvis du vil læse andre artikler, der ligner JDeveloper 12c: Dinamisk Udvikling med ADF, kan du besøge kategorien Teknologi.
