2015-01-21 3 views
0

Я хочу использовать веб-сервис в коде C. Я пытаюсь сделать клиента. Мне нужно что-то делать, что делает Axis2java и генерирует классы из файлов wsdl. Я обнаружил, что Axis2c создает (.c) файлы, созданные из файла wsdl. Я загрузил его с here. разархивировать его. Я создал переменную окружения для AXIS2C_HOME, и я создал AXIS2C_CLASSPATH. , но я не могу заставить его работать.Как использовать Axis2c для генерации файлов C из файла WSDL

при вводе этой команды:

WSDL2C -uri -ss -sd -d none -u -f -o 

Я получаю эту ошибку:

 
echo off 
Error: Could not find or load main class org.apache.axis2.wsdl.WSDL2C 

, как я могу решить эту проблему. и, пожалуйста, скажите, как правильно использовать этот инструмент Axis2c.

Заранее спасибо.

@loentar: Я установил Axis2/Java и установил для него переменную окружения. Теперь я бегу wsdl2c.bat я получаю это:

 
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat 

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>echo off 
Usage: java [-options] class [args...] 
      (to execute a class) 
    or java [-options] -jar jarfile [args...] 
      (to execute a jar file) 
where options include: 
    -d32   use a 32-bit data model if available 
    -d64   use a 64-bit data model if available 
    -server  to select the "server" VM 
        The default VM is server. 

    -cp 
    -classpath 
        A ; separated list of directories, JAR archives, 
        and ZIP archives to search for class files. 
    -D= 
        set a system property 
    -verbose:[class|gc|jni] 
        enable verbose output 
    -version  print product version and exit 
    -version: 
        require the specified version to run 
    -showversion print product version and continue 
    -jre-restrict-search | -no-jre-restrict-search 
        include/exclude user private JREs in the version search 
    -? -help  print this help message 
    -X   print help on non-standard options 
    -ea[:...|:] 
    -enableassertions[:...|:] 
        enable assertions with specified granularity 
    -da[:...|:] 
    -disableassertions[:...|:] 
        disable assertions with specified granularity 
    -esa | -enablesystemassertions 
        enable system assertions 
    -dsa | -disablesystemassertions 
        disable system assertions 
    -agentlib:[=] 
        load native agent library , e.g. -agentlib:hprof 
        see also, -agentlib:jdwp=help and -agentlib:hprof=help 
    -agentpath:[=] 
        load native agent library by full pathname 
    -javaagent:[=] 
        load Java programming language agent, see java.lang.instrument 

    -splash: 
        show splash screen with specified image 
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for m 
ore details. 

после этого я запускаю эту команду:

 
E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>WSDL2C.bat -uri hello.wsdl 
-u -uw 

E:\dev\Tools\axis2c-bin-1.6.0-win32\bin\tools\wsdl2c>echo off 
Unrecognized option: -uri 
Error: Could not create the Java Virtual Machine. 
Error: A fatal exception has occurred. Program will exit. 

, что я могу сделать? Я использую окна 8, кстати.

ответ

0

я установить переменную envinroment для JAVA_HOME, AXIS2_HOME, AXIS2C_HOME, и добавил их Lib папку CLASSPATH. После выполнения этой команды: WSDL2C.bat -uri hello.wsdl -u -uw Я получил это сообщение:

echo off 
Error: Could not find or load main class org.apache.axis2.wsdl.WSDL2C 

Я нашел решение сам. :) Я дважды проверил, создал ли я переменную окружения для AXIS2_HOME, и я увидел, что она там, правильно. , несмотря на его существование, я попытался установить его снова в командной строке. так что я напечатал:

SET AXIS2_HOME=E:\dev\Tools\axis2-1.6.2 

тогда я ввел команду для генератора кода WSDL2C:

WSDL2C.bat -uri hello.wsdl -u -uw 

и БАМ! он работал правильно. Теперь я могу сгенерировать файлы C из файла WSDL.

1

В дополнение к Axis2/C у вас должен быть установлен Axis2/Java.

AXIS2_HOME должен указывать на установку Axis2/Java.

Подробнее см. README of codegen.

Полный список команд для создания и компиляции клиента является:

# create stubs 
sh $AXIS2C_HOME/bin/tools/wsdl2c/WSDL2C.sh -uri Calculator.wsdl -u -uw 

# implement main() in src/your_client.c 
# see samples/codegen/client/calculator for example 

# compile and link client 
gcc -o calculator_client src/*.c -I$AXIS2C_HOME/include/axis2-1.6.0 -L$AXIS2C_HOME/lib -laxutil -laxis2_axiom -laxis2_parser -laxis2_engine -lpthread -laxis2_http_sender -laxis2_http_receiver -ldl -Wl,--rpath -Wl,$AXIS2C_HOME/lib 
+0

Я до сих пор не могу заставить его работать. Я объяснил это выше. –

Смежные вопросы