swagger-api / swagger-codegen

swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.
http://swagger.io
Apache License 2.0
16.74k stars 6.02k forks source link

Can't create Java client in Windows #272

Closed guillemdc closed 9 years ago

guillemdc commented 9 years ago

Hi,

I've managed to assemble the .jar file, but I can't run this line from windows: ./bin/runscala.sh samples/server-generator/java-jaxrs/JavaJaxRSServerGenerator.scala http://petstore.swagger.wordnik.com/api/api-docs special-key

Is there any way I can automatically generate the java server in a windows environment?

guillemdc commented 9 years ago

Actually, here's the error I get when I use cygwin:

$ ./bin/runscala.sh samples/server-generator/java-jaxrs/JavaJaxRSServerGenerator.scala http://petstore.swagger.wordnik.com/api/api-docs special-key java.net.SocketException: Permission denied: listen failed at java.net.TwoStacksPlainSocketImpl.socketListen(Native Method) at java.net.PlainSocketImpl.socketListen(PlainSocketImpl.java:311) at java.net.AbstractPlainSocketImpl.listen(AbstractPlainSocketImpl.java:388) at java.net.ServerSocket.bind(ServerSocket.java:377) at java.net.ServerSocket.(ServerSocket.java:237) at java.net.ServerSocket.(ServerSocket.java:128) at scala.tools.util.SocketServer.createServerSocket(SocketServer.scala:36) at scala.tools.util.SocketServer.serverSocket$lzycompute(SocketServer.scala:41) at scala.tools.util.SocketServer.serverSocket(SocketServer.scala:41) at scala.tools.util.SocketServer.port$lzycompute(SocketServer.scala:42) at scala.tools.util.SocketServer.port(SocketServer.scala:42) at scala.tools.nsc.CompileServer$$anonfun$execute$1$$anonfun$apply$mcZ$sp$1.apply$mcZ$sp(CompileServer.scala:197) at scala.tools.nsc.CompileServer$$anonfun$execute$1$$anonfun$apply$mcZ$sp$1.apply(CompileServer.scala:196) at scala.tools.nsc.CompileServer$$anonfun$execute$1$$anonfun$apply$mcZ$sp$1.apply(CompileServer.scala:196) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58) at scala.Console$.withOut(Console.scala:53) at scala.tools.nsc.CompileServer$$anonfun$execute$1.apply$mcZ$sp(CompileServer.scala:196) at scala.tools.nsc.CompileServer$$anonfun$execute$1.apply(CompileServer.scala:196) at scala.tools.nsc.CompileServer$$anonfun$execute$1.apply(CompileServer.scala:196) at scala.util.DynamicVariable.withValue(DynamicVariable.scala:58) at scala.Console$.withErr(Console.scala:80) at scala.tools.nsc.CompileServer$.execute(CompileServer.scala:195) at scala.tools.nsc.CompileServer$.main(CompileServer.scala:176) at scala.tools.nsc.CompileServer.main(CompileServer.scala) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at scala.reflect.internal.util.ScalaClassLoader$$anonfun$run$1.apply(ScalaClassLoader.scala:68) at scala.reflect.internal.util.ScalaClassLoader$class.asContext(ScalaClassLoader.scala:31) at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.asContext(ScalaClassLoader.scala:99) at scala.reflect.internal.util.ScalaClassLoader$class.run(ScalaClassLoader.scala:68) at scala.reflect.internal.util.ScalaClassLoader$URLClassLoader.run(ScalaClassLoader.scala:99) at scala.tools.nsc.CommonRunner$class.run(ObjectRunner.scala:22) at scala.tools.nsc.ObjectRunner$.run(ObjectRunner.scala:39) at scala.tools.nsc.CommonRunner$class.runAndCatch(ObjectRunner.scala:29) at scala.tools.nsc.ObjectRunner$.runAndCatch(ObjectRunner.scala:39) at scala.tools.nsc.MainGenericRunner.runTarget$1(MainGenericRunner.scala:65) at scala.tools.nsc.MainGenericRunner.run$1(MainGenericRunner.scala:87) at scala.tools.nsc.MainGenericRunner.process(MainGenericRunner.scala:98) at scala.tools.nsc.MainGenericRunner$.main(MainGenericRunner.scala:103) at scala.tools.nsc.MainGenericRunner.main(MainGenericRunner.scala) Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true Could not connect to compilation daemon after 300 attempts. Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true Please set scalaVersion := "" in build.sbt and run ./sbt assembly

guillemdc commented 9 years ago

After another try now it says this: $ ./bin/runscala.sh ./samples/server-generator/java-jaxrs/JavaJaxRSServerGenerator.scala http://localhost/api-docs special-key cygwin warning: MS-DOS style path detected: C:/Program Files/Java/jdk1.7.0_45/bin/java Preferred POSIX equivalent is: /cygdrive/c/Program Files/Java/jdk1.7.0_45/bin/java CYGWIN environment variable option "nodosfilewarning" turns off this warning. Consult the user's guide for more details about POSIX paths: http://cygwin.com/cygwin-ug-net/using.html#using-pathnames Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true " in build.sbt and run ./sbt assembly

guillemdc commented 9 years ago

Hi, I've tried with a different script and this is what tells me now (apparently it cannot import the BasicJavaGenerator):

$ ./bin2/runscala.sh samples/server-generator/java-jaxrs/JavaJaxRSServerGenerator.scala http://petstore.swagger.wordnik.com/api/api-docs special-key C:\swagger-codegen-master\samples\server-generator\java-jaxrs\JavaJaxRSServerGenerator.scala:17: error: object wordnik is not a member of package com import com.wordnik.swagger.codegen.BasicJavaGenerator ^ C:\swagger-codegen-master\samples\server-generator\java-jaxrs\JavaJaxRSServerGenerator.scala:21: error: not found: type BasicJavaGenerator object JavaJaxRSServerGenerator extends BasicJavaGenerator { ^ C:\swagger-codegen-master\samples\server-generator\java-jaxrs\JavaJaxRSServerGenerator.scala:22: error: not found: value generateClient def main(args: Array[String]) = generateClient(args) ^ C:\swagger-codegen-master\samples\server-generator\java-jaxrs\JavaJaxRSServerGenerator.scala:34: error: not found: value apiTemplateFiles apiTemplateFiles ++= Map("api.mustache" -> ".java") ^ C:\swagger-codegen-master\samples\server-generator\java-jaxrs\JavaJaxRSServerGenerator.scala:36: error: not found: value modelTemplateFiles modelTemplateFiles ++= Map("model.mustache" -> ".java") ^ 5 errors found Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true

I could really use some help :'(.

guillemdc commented 9 years ago

BTW, the same thing happens when I try to run other scripts, but with different imports affected

$ ./bin2/validate.sh samples/server-generator/java-jaxrs/JavaJaxRSServerGenerator.scala http://petstore.swagger.wordnik.com/api/api-docs special-key No such file or class on classpath: com.wordnik.swagger.codegen.spec.Validator Picked up _JAVA_OPTIONS: -Djava.net.preferIPv4Stack=true

guillemdc commented 9 years ago

I'm echoing the variable CLASSPATH and it points to the place where the built JAR file is, and it does contain "wordnik" inside of "com". I understand nothing :'(.

Pleaaaaaaaaase I NEED HELP!!!

guillemdc commented 9 years ago

Even, when I open a cmd window and start scala, I do like this:

scala> :cp target/scala-2.10/swagger-codegen-assembly-2.0.18-SNAPSHOT.jar Added 'C:\swagger-codegen-master\target\scala-2.10\swagger-codegen-assembly-2.0. 18-SNAPSHOT.jar'. Your new classpath is: ".;C:\PROGRA~1\IBM\SQLLIB\java\db2java.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc.ja r;C:\PROGRA~1\IBM\SQLLIB\java\sqlj.zip;C:\PROGRA~1\IBM\SQLLIB\java\db2jcc_licens e_cu.jar;C:\PROGRA~1\IBM\SQLLIB\bin;C:\PROGRA~1\IBM\SQLLIB\java\common.jar;C:\sw agger-codegen-master\target\scala-2.10\swagger-codegen-assembly-2.0.18-SNAPSHOT. jar;C:\swagger-codegen-master\target\scala-2.10\swagger-codegen-assembly-2.0.18- SNAPSHOT.jar" Nothing to replay.

scala> import com.wordnik.*

:7: error: object wordnik is not a member of package com import com.wordnik.* ^ Which is weird because IT IS THERE!!! ![image](https://cloud.githubusercontent.com/assets/7646352/4402587/08bb4038-4499-11e4-8a91-5f3f4830b1c3.png)
fehguy commented 9 years ago

Sorry for the delay. My suggestion is to use the assembly here:

https://oss.sonatype.org/content/repositories/snapshots/com/wordnik/swagger-codegen_2.10.2/2.0.18-SNAPSHOT/swagger-codegen_2.10.2-2.0.18-SNAPSHOT-assembly.jar

and run the client as such:

java -cp swagger-codegen_2.10.2-2.0.18-SNAPSHOT-assembly.jar com.wordnik.swagger.codegen.BasicJavaGenerator http://petstore.swagger.wordnik.com/api/api-docs

Please reopen if you're still having trouble, and I suggest moving to the develop_2.0 branch which makes this much easier.