Pagina 1 di 1

[Java] Java2WSDL non riconosciuta

Inviato: martedì 18 dicembre 2007, 17:43
da peppespe
Premetto di aver installato e configurato correttamente il SOAP Engine Axis 1.2 sia sotto la mia distribuzione Ubuntu 7.10 che su Win XP.

Ho però un problema sotto Ubuntu nel creare un file WSDL per un web service (denominato "ThaiPalaceMenuService") mediante la classe Java2WSDL mentre la medesima operazione sotto Win mi funziona correttamente, ecco gli esiti:

- Sotto Windows:

Codice: Seleziona tutto

C:\projects\thai>java org.apache.axis.wsdl.Java2WSDL -o ThaiPalaceMenuService.wsdl -l http://localhost:8080/axis/services/ThaiPalaceMenuService -n urn:com.dominio.service.ThaiPalaceMenuService -pcom.dominio.service.ThaiPalaceMenuService urn:com.dominio.service.ThaiPalaceMenuService ThaiPalaceMenuService
- Sotto Ubuntu:

Codice: Seleziona tutto

root@giuseppe-laptop:/home/giuseppe/projects/thai# java org.apache.axis.wsdl.Java2WSDL -o ThaiPalaceMenuService.wsdl -l http://localhost:8080/axis/services/ThaiPalaceMenuService -n urn:com.dominio.service.ThaiPalaceMenuService -pcom.dominio.service.ThaiPalaceMenuService urn:com.dominio.service.ThaiPalaceMenuService ThaiPalaceMenuService
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/axis/wsdl/Java2WSDL
e pure le variabili di ambiente mi sembrano settate correttamente:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
LANGUAGE="it_IT:it:en_GB:en"
LANG="it_IT.UTF-8"
JAVA_HOME="/usr/local/jdk1.6.0_03"
JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03"
CLASSPATH="/var/lib/tomcat5.5/webapps/axis/WEB-INF/libaxis.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libaxis-ant.jar:
/var/lib/tomcat5.5/webapps/axis/WEB-INF/libcommons-discovery-0.2.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libcommons-logging-1.0.4.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libjaxrpc.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/liblog4j-1.2.8.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libsaaj.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libwsdl4j-1.5.1.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libmail.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libxercesImpl.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libxmlsec.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libcommons-httpclient-3.0-rc2.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libmailapi_1_3_1.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libservlet.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libclutil.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libxmlParserAPIs.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/activation.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/tools.jar:
/home/giuseppe/projects/junit3.8.1/junit.jar"

Re: [Java] Java2WSDL non riconosciuta

Inviato: martedì 18 dicembre 2007, 18:06
da Massimo S.
Sei sicuro che la var CLASSPATH sia settata bene?

Se dai il comando

Codice: Seleziona tutto

echo $CLASSPATH
te la visualizza tutta?

Forse il problema è l'eccessiva lunghezza della definizione della var, non so se c'è un limite in linux ...

Re: [Java] Java2WSDL non riconosciuta

Inviato: martedì 18 dicembre 2007, 18:15
da peppespe
mi sa ke hai proprio ragione:

root@giuseppe-laptop:/home/giuseppe/projects/thai# echo $CLASSPATH
/var/lib/tomcat5.5/webapps/axis/WEB-INF/libaxis.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libaxis-ant.jar:

invece di:

CLASSPATH="/var/lib/tomcat5.5/webapps/axis/WEB-INF/libaxis.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libaxis-ant.jar:
/var/lib/tomcat5.5/webapps/axis/WEB-INF/libcommons-discovery-0.2.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libcommons-logging-1.0.4.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libjaxrpc.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/liblog4j-1.2.8.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libsaaj.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libwsdl4j-1.5.1.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libmail.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libxercesImpl.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libxmlsec.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libcommons-httpclient-3.0-rc2.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libmailapi_1_3_1.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libservlet.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libclutil.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/libxmlParserAPIs.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/activation.jar:/var/lib/tomcat5.5/webapps/axis/WEB-INF/tools.jar:
/home/giuseppe/projects/junit3.8.1/junit.jar"

come si può risolvere questo problema?

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 10:46
da Massimo S.
Ma sei sicuro di non esserci andato un po largo con il classpath?  ;D
Tutti quei jar sono veramente necessari?

Come la imposti la variabile? Dentro uno script?
La parte di definizione che ti ha preso è molto più corta di quanto mi aspettavo, non è che c'è un carattere di "a capo" dopo "libaxis-ant.jar:" ?


Comunque potresti anche fare una prova nel definire la variabile a pezzi, cioè qualcosa del tipo

Codice: Seleziona tutto

export CLASSPATH=pezzo1
export CLASSPATH=$CLASSPATH:pezzo2
...
export CLASSPATH=$CLASSPATH:pezzoN

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 11:46
da peppespe
Massimo S. ha scritto:
Ma sei sicuro di non esserci andato un po largo con il classpath?  ;D
Tutti quei jar sono veramente necessari?

Come la imposti la variabile? Dentro uno script?
La parte di definizione che ti ha preso è molto più corta di quanto mi aspettavo, non è che c'è un carattere di "a capo" dopo "libaxis-ant.jar:" ?


Comunque potresti anche fare una prova nel definire la variabile a pezzi, cioè qualcosa del tipo

Codice: Seleziona tutto

export CLASSPATH=pezzo1
export CLASSPATH=$CLASSPATH:pezzo2
...
export CLASSPATH=$CLASSPATH:pezzoN
purtroppo x la realizzazione del progetto all'Uni sono richiesti tutti quei file .jar , mentre x quanto riguarda la c.d. definizioni di variabili a pezzi, se parli di configurazione da riga di comando, questi varrà solo per la sessione di lavoro in corso, dopo di che dovrei ripetere l'operazione ad ogni riuso e/o riavvio del pc.

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 13:41
da Massimo S.
Beh basta che metti la definizione .... ad esempio alla fine di .bashrc (file nascosto) nella tua home dir. e sei a posto.

Però prima fai una prova definendola al volo a riga di comando per vedere se funziona

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 14:31
da peppespe
ho provato così da riga di comando:

set AXIS_HOME=/var/lib/tomcat5.5/webapps/axis
set AXIS_LIB=$AXIS_HOME/WEB-INF/lib
set AXISCLASSPATH=$AXIS_LIB/axis.jar:$AXIS_LIB/activation.jar:$AXIS_LIB/commons-logging-1.0.4.jar:$AXIS_LIB/servlet.jar:$AXIS_LIB/axis-ant.jar:$AXIS_LIB/jaxrpc.jar:$AXIS_LIB/tools.jar:$AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/wsdl4j-1.5.1.jar:$AXIS_LIB/clutil.jar:$AXIS_LIB/mailapi_1_3_1.jar:$AXIS_LIB/xercesImpl.jar:$AXIS_LIB/commons-discovery-0.2.jar:$AXIS_LIB/mail.jar:$AXIS_LIB/xmlParserAPIs.jar:$AXIS_LIB/commons-httpclient-3.0-rc2.jar:$AXIS_LIB/saaj.jar:$AXIS_LIB/xmlsec.jar:$AXIS_LIB/junit.jar
export AXIS_HOME; export AXIS_LIB; export AXISCLASSPATH

ma non ottengo nessun risultato utile poiché l'echo associato risulta vuoto, in cosa sbaglio?

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 15:25
da Massimo S.
invece di mettere export alla fine, sostituisci tutti i "set" con "export"

questo per la prova a riga di comando, dentro gli script dovrebbe funzionare anche come hai fatto

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 15:31
da peppespe
cioè dovrei inserire dentro environment il codice così come te l'ho presentato?

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 15:34
da Massimo S.
peppespe ha scritto: cioè dovrei inserire dentro environment il codice così come te l'ho presentato?
ti riferisci a /etc/environment ?

No mi sa che quello non ha questa sintassi.

Io dicevo in $HOME/.bashrc

(nota che /etc/environment è globale mentre .bashrc è locale alla bash lanciate dall'utente specifico)

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 15:46
da peppespe
ho fatto bene?
root@giuseppe-laptop:/home/giuseppe# gedit .bashrc

Codice: Seleziona tutto

# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't put duplicate lines in the history. See bash(1) for more options
export HISTCONTROL=ignoredups
# ... and ignore same sucessive entries.
export HISTCONTROL=ignoreboth

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"

# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi

# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
    ;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac

# Comment in the above and uncomment this below for a color prompt
#PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac

# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

#if [ -f ~/.bash_aliases ]; then
#    . ~/.bash_aliases
#fi

# enable color support of ls and also add handy aliases
if [ "$TERM" != "dumb" ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
    #alias dir='ls --color=auto --format=vertical'
    #alias vdir='ls --color=auto --format=long'
fi

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

set AXIS_HOME=/var/lib/tomcat5.5/webapps/axis
set AXIS_LIB=$AXIS_HOME/WEB-INF/lib
set AXISCLASSPATH=$AXIS_LIB/axis.jar:$AXIS_LIB/activation.jar:$AXIS_LIB/commons-logging-1.0.4.jar:$AXIS_LIB/servlet.jar:$AXIS_LIB/axis-ant.jar:$AXIS_LIB/jaxrpc.jar:$AXIS_LIB/tools.jar:$AXIS_LIB/log4j-1.2.8.jar:$AXIS_LIB/wsdl4j-1.5.1.jar:$AXIS_LIB/clutil.jar:$AXIS_LIB/mailapi_1_3_1.jar:$AXIS_LIB/xercesImpl.jar:$AXIS_LIB/commons-discovery-0.2.jar:$AXIS_LIB/mail.jar:$AXIS_LIB/xmlParserAPIs.jar:$AXIS_LIB/commons-httpclient-3.0-rc2.jar:$AXIS_LIB/saaj.jar:$AXIS_LIB/xmlsec.jar:$AXIS_LIB/junit.jar
export AXIS_HOME; export AXIS_LIB; export AXISCLASSPATH

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 17:52
da Massimo S.
peppespe ha scritto: ho fatto bene?
Beh puoi verificarlo da solo, funziona?

Ad esempio se fai

Codice: Seleziona tutto

echo $AXIS_LIB
te la visualizza correttamente?

Io in un caso simile avevo fatto senza usare le "set" e con gli export uno per riga, tipo:

Codice: Seleziona tutto

VAR1=valore1
VAR2=valore2
export VAR1
export VAR2
ma penso che come hai fato tu sia lo stesso

Re: [Java] Java2WSDL non riconosciuta

Inviato: mercoledì 19 dicembre 2007, 19:44
da peppespe
Risolto senza SET

root@giuseppe-laptop:/home/giuseppe# echo $AXIS_LIB
/var/lib/tomcat5.5/webapps/axis/WEB-INF/lib
root@giuseppe-laptop:/home/giuseppe#