18. august 2005 - 15:43Der er
10 kommentarer og 1 løsning
Java 5.0 og Axis
Jeg har en applikation, som jeg forsøger at få til at køre under den nyeste java. (Applikationen fungerer fint under 1.4.2)
Jeg har installeret java, sat java_home og alle de øvrige variable op. Dertil har jeg installeret den nyeste ANT (v1.6.5) og Axis (v.1.2.1)
Jeg benytter så WSDL4J til at autogenerere nogle klasser, og nogle af disse linier fejler når jeg forsøger at kompilere applikationen.
setUse(org.apache.axis.enum.Use) in org.apache.axis.description.OperationDesc cannot be applied to (org.apache.axis.constants.Use) oper.setUse(org.apache.axis.constants.Use.ENCODED);
Jeg kan ikke greje hvad jeg gør forkert. Koden er jo autogenereret, og der fik jeg ingen fejl. :-/
Kan der være noget jeg mangler at downloade og installere?
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Nej. Det væsentlige er versionen af axis, hvor axis 1.1 ser anderledes ud. Det skyldes at de metoder som blev gjort brug af i den autogenererede v. 1.1 kode er deprecated, og det tager axis 1.2.1 højde for, og koden ser derfor anderledes ud.
så du har noget som virker med Axis 1.1 og ikke virker med Axis 1.2.1 (og formentlig er versionen af Java ligegyldig - bortset fra at Axis 1.2.1 har lavet om af hensyn til Java 1.5.0) ?
kan du poste den genererede kode eller bedre WSDL'en ?
Axis har afgjort lavet nogle tilpasninger til Java. enum er blevet et reserveret ord osv. Det var også derfor jeg opgraderede fra 1.1 til 1.2.1.
Jeg har tilladt mig at antage at wsdl er sund og rask, da den fungerer fint inden skiftet. Mit problem må være en manglende opgradering el.lign. Fejlmeddelelsen siger at metoden setUse(org.apache.axis.enum.Use) ikke kan benyttes. Men når jeg kigger i javadoc er den der. Og hvis jeg i Eclipse beder om at få en liste over mulige metoder er den der også. og hvis jeg tjekker hvilken javaversion Ant kører under, siger den klart 1.5.0.
Ok. Det kan jeg prøve næste gang jeg er i nærheden af min egen maskine.
Jeg kom dog til at tænke på... Jeg kørte en "ant -diagnostics" for at se hvilke variable den arbejdede med. Alt så fint ud. Men jeg studsede over at jeg ikke kunne se nogen angivelse af hvilken axis den brugte. Ingen axis i java.class.path el.lign. Hverken version 1.1 eller 1.2.1. Jeg har så i systemvariable sat axis_home til at pege på version 1.2.1, men kan det tænkes at det er her skoen klemmer? At den fejlagtigt benytter den gamle axis...?
Hvor hulen kan jeg specifikt få ant til at benytte version 1.2.1?
Hov. Jeg har helt - i min eufori - glemt at vende tilbage hertil.
Problemet viste sig at jeg stadig havde en ældre version af axis til at ligge og rode, som den så fik brugt istedet for den nye. Det gav selvfølgelig fejl.
Straks da jeg fjernede den, kørte det som det skulle.
Jeg fik genereret stub-klasser ud fra wsdl med axis version 1.2.1, men ved kompilering af hele projektet via ant, fik en tidligere version af axis lusket sig ind foran 1.2.1, og så var balladen der.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.