"Magia" Javy, czy faktycznie jest taka magiczna?

0

Siemacie
Właściwie, temat chciałem założyć w dziale Java, ale zmieniłem zdanie. Ostatnia pogawędka z @n0name_l 'em w komentarzach mnie trochę zainspirowała do napisania tego posta.
Otóż ciekawi mnie trochę czy tylko ja mam takiego pecha lub schorzenie umiejętnościowe, ale odnoszę wrażenie, że pisanie aplikacji webowych w javie to 80% naprawiania błędów 15% irytacji(żeby nie ująć tego nieco dosadniej) i 5% faktycznego rozwoju czy to jakiegoś projektu czy własnych umiejętności.
Zastanawia mnie czy tylko ja tak mam? Przykładowo: pisze projekt, pomijając to, że Tomcat to chwila rzuca jakimś wyjątkiem typu ClassNotFoundException dla klasy, która mam w ścieżce klas, za 2-3 dni uruchamiam go (gdybyście zgubili wątek, przypominam, że wcześniej działał) i tu nagle kabum! miejsca w konsoli nie starcza. Nie dziwiłoby mnie to oczywiscie (przecież to w końcu programowanie..), gdyby to się nie powtarzało notorycznie. Może to kwestia frameworków jakich używam? Ale przecież to zwykły Spring z Hibernate - wątpię, żeby było to jakieś extra-egzotyczne połączenie.

Ta niesamowita przygoda z naprawianiem błędów, które uniemożliwiały mi uruchomienie projektu, doprowadziła mnie do chęci zmiany technologii. Stąd przeleciałem przez oględziny Rubyego(z myslą o RoR, którego to przez ten czas poleciły mi ze 2 osoby), przez pisanie podstaw Django w pythonie, aż do jakiegoś CRUD'a C# z ASP.NET.
Co moją uwagę nieco przykuło, w tych technologiach dużo rzeczy mamy na start z automatu (czy to dobrze, czy źle to nie wiem). W każdym razie, np w Visual Studio jak tworze projekt ASP.NET'a MVC to tam wszystko ładnie śmiga od początku. Nie ma jakichś durnych błędów, że nie zdeployowalem artifacta lub zrobiłem to źle. Stawiam projekt, działa.

Odnoszę przez to wrażenie, że Java, w której to pisze amatorsko, hobbystycznie już jakiś czas jest rozwiązaniem TOTALNIE pokręconym. Szum jest na rynku(z tego co mi wiadomo) i w ogóle w internecie, że "Java ogólnie zaje*sta", "wielkie aplikacje sa pisane w javie", "w javie pisze sie dłuzej, ale ma wieksze możliwości", "java to, tamto.."

Czy na prawdę kawowy świat jest tak wciągający i wielki, a winę mogę zrzucić na moją.. ułomność oO? Może tylko mi się zdarzają takie chore sprawy, a technologia jest jak każda inna?
Poważnie skłania mnie to do przychylenia się nad czymś innym na poważniej, niż tylko "a zobaczę jak to wygląda"

Mam nadzieje, że nie powstanie z tego wielka prowokacja, a po prostu dostane jakieś klarowne odpowiedzi. Trochę długi się ten post zrobił, a mam wrażenie, że i tak wszystkiego nie powiedziałem. Mam nadzieje, że zaskoczyliście o co mi chodzi :)

Pozdrawiam i chwała za dotarcie do tych słów! :)

0

Strzelam że masz projekt Mavenowy i ktoś coś sknocił z zależnościami :]

0

Z mavenem ustrzeliłeś dobrze, ale co do sknocenia zależności to mogę winić tylko siebie, bo zacząłem go właściwie tylko dla własnej edukacji :P Faktycznie błąd był w zależnościach (który naprawiłem z pomocą forumowiczów), co nie zmienia faktu, że te błędy pojawiają sie znacznie za często. (min. teraz, po naprawieniu tego z zależnościami jest kolejny
Np sama zmiana serwera - chciałem sobie podmienić w projekcie Tomcata na JBoss'a. Pobrałem, wyrzuciłem artifact z pod Tomcata, tomcata tez, dodałem jboss'a, artifact .war odpalam i...? sru!
Odpaliłem JBossa na czystym projekcie webowym (stworzonym od podstaw) i też sypnęło jakimś wyjatkiem, naprawiłem, to teraz jak uruchomie serwer to porty się nie zgadzają. Innymi słowy sielanka :D

0

Java to nie tylko Tomcat i JBoss :P

Z ciekawości, czy w RoR, Django albo ASP.NET robiłeś jakiś odpowiednik podmieniania w projekcie Tomcata na JBossa?

0

Rozumiem, że to nie tylko Tomcat i JBoss, ale niejako opinie na temat Javy one we mnie kreowały, stąd teraz pisze takiego, a nie innego posta :) nie wiem czy u mnie to taki zbieg okoliczności i tak "bugowo" sie potoczyło, czy tak w ogóle wygląda pisanie w technologiach javowych

Nie próbowałem nic takiego, bo właściwie nie było powodu, jesli już coś robiłem to poznałem język podstawowo i napisałem coś prostego, żeby zobaczyć z czym sie temat je

0

Ja jako totalny laik i amator mam wstręt do javy.
Drażni mnie z poziomu użytkownika, a co dopiero jakbym miał cos w tym robic.
;]

1

azalut:
A może to jest tak, że w przypadku Javy kombinujesz sobie specjalnie, w przypadku innych technologii po prostu bierzesz szkielet projektu i tylko dorzucasz formatki i logikę? ;]

0

Mam podobne wrażenia, ale mniej więcej wiem dlaczego.

W przeszłości pracowałem głównie z gotowymi frameworkami - np. PHP/Drupal.
Tam już mam wszystko zestawione ze sobą, więc tak naprawdę praca polega głównie na konfiguracji.

Jeśli chodzi o Jave, to
Java + Tomcat + JDBC (moja kombinacja) to tak naprawdę żaden framework a prawie czysty język i serwer.
Więc wszystko co dostawiasz trzeba ze sobą zestroić.

Jeśli chcesz żeby zaskoczyło od pierwszego kopa, spróbuj raczej pobawić się z frameworkami:

  • Java lub Scala / Play2
  • Groovy / Grails
  • Python / Django lub Flask lub web2py
  • PHP / CakePHP, Drupal, Symfony, Yii

A jeśli chodzi o Springa, to używasz MVC + Security?

0

@Wibowit hmm.. po części masz racje, aczkolwiek porównaj C# i Jave (o Django/Flask czy RoR nie wspominam bo tam to jest w ogóle luźno i prosto z tego co słyszałem):
Chcesz postawic to samo: CRUD'a z zapisem do bazy przez hibernate (java) i entity framework(c#)
W C# zajmuje to chwile moment, robiłem ostatnio nawet wg porad ze strony microsoftu i na prawde.. projekt postawiłem, działał od razu ( serwer, kontrolery podstawowe, wszystko mówiąc krótko). Dorobiłem pare klas i mam CRUD'a, który w dodatku sam sie wygenerował - nie mówie, że to dobrze, bo jak sie coś generuje to właściwie niczego sie nie uczymy. Co mam dokładniej na myśli? Nie ma błędów serwera, nie ma wyjątków, nie ma problemu z tym, że mam złe/źle wstawione zależności w pom'a (jak to bywa w javie) albo że coś z czymś koliduje.

Co mnie dziwi w javie - przecież używanie jakiegokolwiek serwera do naszej aplikacji (czy to Tomcat, Jetty, JBoss czy inny) jest troche zawiłe. Zawsze pojawiają się jakieś błędy przy tworzeniu projektu, bo serwer to, tamto. W innych technologiach tego nie spotkałem (jestem jeszcze młody i głupi, także może po prostu za mało w te technologie się wgłębiłem). Posiadam np projekt na GitHubie, który zacząłem na PC. Gdzies poza domem robie git clone na laptopa, wrzucam serwer i nagle nie działa, chociaż wersja serwera dokładnie ta sama. :D
Edit
jeśli ktoś chciałby powiedziec "NO TAK! ale to tylko CRUD, jakieś banalne czytanie z bazy!" - owszem(choć nie tak banalne w przypadku javy hehe), ale nikt chyba nie zaprzeczy jak powiem, że zarówno w Javie jak i w C# pisze się duże, poważne aplikacje.

@vpiotr
pisałem troche w Play2 w Javie, o Scali myślałem jako o języku dodatkowym (miało być Java jako ten "ważny", a Scala/Python dodatkowo, ale troche mję irytacja z tą javą napadła :))
w pythonie pisałem z ciekawości, pobawiłem się django chwile, a PHP do mnie za mocno nie przemawia.

Co do Springa, wystawiam w nim czysty interfejs REST, który to zwraca JSON'a którego znowu mam zamiar obsługiwać osobnym projektem za pomocą jQuery czy też aplikacji na PC.
Nie używam w tym na razie Security - z prostej, jak również wstydliwej przyczyny - jeszcze go nie poznałem :( (co miałem w planach)

0

No to jeszcze raz: te błędy wynikają z bugów po stronie serwerów aplikacji czy ze złej konfiguracji po twojej stronie?

0

@Wibowit generalnie często coś źle skonfiguruje i potem uruchamiając projekt nie śmiga, serwer również często rzuci jakimś dziwnym wyjątkiem, do którego kompletnie nie wiem jak się zabrać
rozumiem, że błędy leżą często po mojej stronie - coś źle skonfiguruje albo dodam kolidujące ze sobą dependencies w pomie. Tylko, że w innych technologiach się z tym nie spotkałem, ani nie słyszałem od znajomych czy gdzieś tam w internecie, żeby takie pokręcone problemy były
I dlatego ten temat :P próbuje rozwikłać czy ja jakoś źle do tego podchodze, czy to po prostu tak wygląda pisanie w javie (a może i każda technologia tak ma jak się ją bliżej posmyra)

edit
szybki przykład: zrobilem świeży projekt o nazwie ABC, wrzuciłem JBossa jako serwer, zrobilem artifact .war odpalam i mam:

C:\Users\Maciek\workspace\jboss-eap-6.2\bin\standalone.bat
[2014-06-03 05:10:19,351] Artifact unnamed: Server is not connected. Deploy is not available.
Detected server admin port: 9999
Detected server http port: 8080
Calling "C:\Users\Maciek\workspace\jboss-eap-6.2\bin\standalone.conf.bat"
Setting JAVA property to "C:\Program Files\Java\jdk1.7.0_45\bin\java"
===============================================================================

  JBoss Bootstrap Environment

  JBOSS_HOME: "C:\Users\Maciek\workspace\jboss-eap-6.2"

  JAVA: "C:\Program Files\Java\jdk1.7.0_45\bin\java"

  JAVA_OPTS: "-XX:+UseCompressedOops -Dprogram.name=standalone.bat -Xms1G -Xmx1G -XX:MaxPermSize=256M -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman"

===============================================================================

17:10:20,311 INFO  [org.jboss.modules] (main) JBoss Modules version 1.3.0.Final-redhat-2
17:10:20,461 INFO  [org.jboss.msc] (main) JBoss MSC version 1.0.4.GA-redhat-1
17:10:20,523 INFO  [org.jboss.as] (MSC service thread 1-8) JBAS015899: JBoss EAP 6.2.0.GA (AS 7.3.0.Final-redhat-14) starting
17:10:21,233 INFO  [org.xnio] (MSC service thread 1-9) XNIO Version 3.0.7.GA-redhat-1
17:10:21,234 INFO  [org.jboss.as.server] (Controller Boot Thread) JBAS015888: Creating http management service using socket-binding (management-http)
17:10:21,237 INFO  [org.xnio.nio] (MSC service thread 1-9) XNIO NIO Implementation Version 3.0.7.GA-redhat-1
17:10:21,243 INFO  [org.jboss.remoting] (MSC service thread 1-9) JBoss Remoting version 3.2.18.GA-redhat-1
17:10:21,262 INFO  [org.jboss.as.clustering.infinispan] (ServerService Thread Pool -- 29) JBAS010280: Activating Infinispan subsystem.
17:10:21,277 INFO  [org.jboss.as.security] (ServerService Thread Pool -- 42) JBAS013171: Activating Security Subsystem
17:10:21,280 INFO  [org.jboss.as.naming] (ServerService Thread Pool -- 37) JBAS011800: Activating Naming Subsystem
17:10:21,284 INFO  [org.jboss.as.webservices] (ServerService Thread Pool -- 46) JBAS015537: Activating WebServices Extension
17:10:21,291 INFO  [org.jboss.as.security] (MSC service thread 1-14) JBAS013170: Current PicketBox version=4.0.19.SP2-redhat-1
17:10:21,302 INFO  [org.jboss.as.naming] (MSC service thread 1-4) JBAS011802: Starting Naming Service
17:10:21,304 INFO  [org.jboss.as.jsf] (ServerService Thread Pool -- 35) JBAS012605: Activated the following JSF Implementations: [main, 1.2]
17:10:21,308 INFO  [org.jboss.as.connector.logging] (MSC service thread 1-16) JBAS010408: Starting JCA Subsystem (IronJacamar 1.0.23.Final-redhat-1)
17:10:21,316 INFO  [org.jboss.as.mail.extension] (MSC service thread 1-8) JBAS015400: Bound mail session [java:jboss/mail/Default]
17:10:21,345 INFO  [org.jboss.as.connector.subsystems.datasources] (ServerService Thread Pool -- 25) JBAS010403: Deploying JDBC-compliant driver class org.h2.Driver (version 1.3)
17:10:21,462 INFO  [org.apache.coyote.http11] (MSC service thread 1-14) JBWEB003001: Coyote HTTP/1.1 initializing on : http-/127.0.0.1:8080
17:10:21,468 INFO  [org.apache.coyote.http11] (MSC service thread 1-14) JBWEB003000: Coyote HTTP/1.1 starting on: http-/127.0.0.1:8080
17:10:21,552 INFO  [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-9) JBAS010400: Bound data source [java:jboss/datasources/ExampleDS]
17:10:21,567 INFO  [org.jboss.ws.common.management] (MSC service thread 1-4) JBWS022052: Starting JBoss Web Services - Stack CXF Server 4.2.3.Final-redhat-1
17:10:21,596 INFO  [org.jboss.as.server.deployment.scanner] (MSC service thread 1-12) JBAS015012: Started FileSystemDeploymentService for directory C:\Users\Maciek\workspace\jboss-eap-6.2\standalone\deployments
17:10:21,597 INFO  [org.jboss.as.remoting] (MSC service thread 1-9) JBAS017100: Listening on 127.0.0.1:4447
17:10:21,597 INFO  [org.jboss.as.remoting] (MSC service thread 1-3) JBAS017100: Listening on 127.0.0.1:9999
17:10:21,600 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-16) MSC000001: Failed to start service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service jboss.serverManagement.controller.management.http: Address already in use: bind /127.0.0.1:9990
	at org.jboss.as.server.mgmt.HttpManagementService.start(HttpManagementService.java:224) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: java.net.BindException: Address already in use: bind
	at sun.nio.ch.Net.bind0(Native Method) [rt.jar:1.7.0_45]
	at sun.nio.ch.Net.bind(Net.java:444) [rt.jar:1.7.0_45]
	at sun.nio.ch.Net.bind(Net.java:436) [rt.jar:1.7.0_45]
	at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:214) [rt.jar:1.7.0_45]
	at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) [rt.jar:1.7.0_45]
	at org.jboss.sun.net.httpserver.ServerImpl.<init>(ServerImpl.java:144)
	at org.jboss.sun.net.httpserver.HttpServerImpl.<init>(HttpServerImpl.java:54)
	at org.jboss.sun.net.httpserver.DefaultHttpServerProvider.createHttpServer(DefaultHttpServerProvider.java:38)
	at org.jboss.com.sun.net.httpserver.HttpServer.create(HttpServer.java:147)
	at org.jboss.as.domain.http.server.ManagementHttpServer.create(ManagementHttpServer.java:162) [jboss-as-domain-http-interface-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	at org.jboss.as.server.mgmt.HttpManagementService.start(HttpManagementService.java:190) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	... 5 more

17:10:21,840 INFO  [org.jboss.as.controller] (Controller Boot Thread) JBAS014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.serverManagement.controller.management.http: org.jboss.msc.service.StartException in service jboss.serverManagement.controller.management.http: Address already in use: bind /127.0.0.1:9990

17:10:21,850 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015964: Http management interface is not enabled
17:10:21,850 INFO  [org.jboss.as] (Controller Boot Thread) JBAS015954: Admin console is not enabled
17:10:21,850 ERROR [org.jboss.as] (Controller Boot Thread) JBAS015875: JBoss EAP 6.2.0.GA (AS 7.3.0.Final-redhat-14) started (with errors) in 1814ms - Started 127 of 186 services (2 services failed or missing dependencies, 56 services are passive or on-demand)
Connected to server
[2014-06-03 05:10:22,241] Artifact unnamed: Artifact is being deployed, please wait...
17:10:22,307 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-14) JBAS015876: Starting deployment of "unnamed.war" (runtime-name: "unnamed.war")
17:10:22,313 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC000001: Failed to start service jboss.deployment.unit."unnamed.war".STRUCTURE: org.jboss.msc.service.StartException in service jboss.deployment.unit."unnamed.war".STRUCTURE: JBAS018733: Failed to process phase STRUCTURE of deployment "unnamed.war"
	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:127) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_45]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_45]
	at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_45]
Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS018740: Failed to mount deployment content
	at org.jboss.as.server.deployment.module.DeploymentRootMountProcessor.deploy(DeploymentRootMountProcessor.java:97) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:120) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	... 5 more
Caused by: java.io.FileNotFoundException: C:\Users\Maciek\IdeaProjects\ABC\out\artifacts\unnamed\unnamed.war (System nie może odnaleźć określonej ścieżki)
	at java.io.FileInputStream.open(Native Method) [rt.jar:1.7.0_45]
	at java.io.FileInputStream.<init>(FileInputStream.java:146) [rt.jar:1.7.0_45]
	at org.jboss.vfs.spi.RootFileSystem.openInputStream(RootFileSystem.java:55)
	at org.jboss.vfs.VirtualFile.openStream(VirtualFile.java:258)
	at org.jboss.vfs.VFS.mountZipExpanded(VFS.java:533)
	at org.jboss.as.server.deployment.DeploymentMountProvider$Factory$ServerDeploymentRepositoryImpl.mountDeploymentContent(DeploymentMountProvider.java:98) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	at org.jboss.as.server.deployment.module.DeploymentRootMountProcessor.deploy(DeploymentRootMountProcessor.java:93) [jboss-as-server-7.3.0.Final-redhat-14.jar:7.3.0.Final-redhat-14]
	... 6 more

17:10:22,317 ERROR [org.jboss.as.server] (management-handler-thread - 2) JBAS015870: Deploy of deployment "unnamed.war" was rolled back with the following failure message: 
{"JBAS014671: Failed services" => {"jboss.deployment.unit.\"unnamed.war\".STRUCTURE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"unnamed.war\".STRUCTURE: JBAS018733: Failed to process phase STRUCTURE of deployment \"unnamed.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS018740: Failed to mount deployment content
    Caused by: java.io.FileNotFoundException: C:\\Users\\Maciek\\IdeaProjects\\ABC\\out\\artifacts\\unnamed\\unnamed.war (System nie może odnaleźć określonej ścieżki)"}}
17:10:22,319 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015877: Stopped deployment unnamed.war (runtime-name: unnamed.war) in 2ms
[2014-06-03 05:10:22,349] Artifact unnamed: Error during artifact deployment. See server log for details.
[2014-06-03 05:10:22,377] Artifact unnamed: java.lang.Exception: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"unnamed.war\".STRUCTURE" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"unnamed.war\".STRUCTURE: JBAS018733: Failed to process phase STRUCTURE of deployment \"unnamed.war\"
    Caused by: org.jboss.as.server.deployment.DeploymentUnitProcessingException: JBAS018740: Failed to mount deployment content
    Caused by: java.io.FileNotFoundException: C:\\Users\\Maciek\\IdeaProjects\\ABC\\out\\artifacts\\unnamed\\unnamed.war (System nie może odnaleźć określonej ścieżki)"}}

Nie mówie, że sie nie da rozwiązać bo nie próbowałem póki co, ale chodzi mi o sam fakt wystąpienia.

0

Address already in use: bind /127.0.0.1:9990 oznacza, że adres jest już do czegoś zbindowany. Prawdopodobnie zapomniałeś ubić poprzedniej instancji serwera lub cokolwiek innego zajmuje ten port. Sprawdź jakimś narzędziem do sprawdzania która aplikacja zajmuje dany port.
java.io.FileNotFoundException: C:\\Users\\Maciek\\IdeaProjects\\ABC\\out\\artifacts\\unnamed\\unnamed.war (System nie może odnaleźć określonej ścieżki) tego chyba nie trzeba tłumaczyć.

0

@Wibowit
przeglądnąłem to:
Obrazekjp_eexsqne.jpg
Niestety ten port nie jest zajęty :D tak wychodzi

A co do tego drugiego błędu - dlaczego IntelliJ nie utworzył za mnie tego .war'a skoro stworzyłem artifact, gdzie pisało ze jest plik .war? o takie niuanse chodzi. Przypominam, że w C# ten cały serwer i jego problemy albo braki problemów z portami czy czym innym rozwiązały się generalnie same i postawił się od zaraz :)

0

Próbowałeś odpalić /127.0.0.1:9990 w przeglądarce? Możliwe że coś źle skonfigurowałeś i serwer może próbować się odpalać i bindować dwa razy pod ten sam port.

W C# nie podmieniałeś kontenera servletów/ serwera aplikacyjnego. Zarzuciłeś gotowy szkielet i odpaliłeś. Zarzuć gotowy szkielet w Javie i odpal, będziesz miał porównanie.

Być może ten JBoss to w twoim przypadku strzelanie z armaty do muchy. Spróbuj z czymś prostym, np postaw sobie Play Framework.

0

@azalut, jeśli postawisz sobie kilka usług na tym samym porcie, to będziesz miał problemy niezależnie od technologii. Inny język tu niczego nie zmieni. ;P

0

Próbowałem, ładuje się, ładuje ale nic nie otwiera
No fakt, w c# nie robiłem takich rzeczy - ale to przez to, że nie musiałem. W Javie postawić gotowy szkielet? Jest taka możliwość wgl w jakimś IDE? :P

Możliwe, nie interesowałem się za mocno serwerami, gdyż nie widzę między nimi większych różnic poza prędkościami uruchamiania (niewielkimi) jako amator. Zawsze to był Tomcat, ostatnio pobrałem JBoss dla testów, a dzisiaj Jetty-iego i ten jest sprytny, bo mały, odpala fajnie, nie wyrzuca bóg wie ile linii na konsolę. W nowym projekcie go dodałem i zrobilem jakis prosty kontroler zwracajacy JSON, ale na razie mam 404 bo pewnie jakiś błąd się wkradł (standard :D)
Pisałem jakieś podstawowe rzeczy w Playu, podobnie jak Django itd. dla sprawdzenia o co tam chodzi. Faktycznie tam jest wbudowany serwer (o ile dobrze pamiętam) który ładnie startuje, jest szybki i można zmieniac zawartość strony odświeżając praktycznie

@somekind to rozumiem, jednak pojawia się pytanie która usługa stoi na tym porcie, skoro ani skaner portów nie wykrywa takiego zajętego, ani nie mam nic szczególnego włączonego :]

1

Moje doswiadczenia sa bardzo podobne. Jako ze java to 'super skalowalne, elastyczne, i cudownie' rozwiazanie, prawda jest: with great power comes great responsibility. W Javie trzeba wlasnie duzo samemu kombinowac, a poziom skomplikowania frameworkow itp. jest niebywaly (mam na mysli springi, hibernaty, jpa i inne ee i pokrewne). Do tego dochodzi to, ze w Javie jest mnostwo frameworkow webowych i innych, wszystkie sa open source i wszystkie maja tysiaca bugow, a ty wybierasz jeden z nich na podstawie... no wlasnie, jakiej? Hype, costam gdzies przeczytane, itp. itd. Ogolnie javowe frameworki maja moim zdaniem niska jakosc, wynika to po trochu z 'niskiego progu wejscia', czyli kazdy moze sobie pizgac frameworki. Gorzej jest chyba tylko w PHP, tam to juz w ogole masakra, kazdy 'doswiadczony programista' (+- miesiac) ma wlasny CMS.
Inne jezyki / platformy za to maja mniejszy wybor, ale jakos te rozwiazania wydaja mi sie elastyczniejsze, bardzoej przemyslane / dopracowane. Ot, taki Django, pracuje nad nim od dawna kupa ludzi, jest w pewnym sensie standardowym frameworkiem dla pythona (lub jednym z kilku, nie kilkuset) i dla programisty jest zdecydowanie latwiejszy niz jakikolwiek javowy framework. Takie frameworki najczesciej maja wlasnie serwery embedded, lub korzystaja z pythonowych klas (SimpleHTTPServer, anybody?). Javowe rozwiazania coraz czesciej tez tak robia.
Ale to tylko moje zdanie, ja nienawidze Javy, z wzajemnoscia, ale jestem glownie jej programista (aktualnie Android, ktorego rowniez nienawidze), bo ma ta dobra ceche, ze potrafi bardzo latwo utrzymac cale rodziny. Hobbystycznie Javy bym kijem nie tykal.

0

W Mavenie jest coś takiego jak archetypy czyli szkielety aplikacji. Np http://mvnrepository.com/artifact/org.jboss.spec.archetypes/jboss-javaee6-webapp-archetype

0

Co do portow, ja np. mialem kiedys pod windowsem problem z uruchomieniem apache. Po wielu godzinach szukania okazalo sie, ze port 8080 jest zajety przez ... Skype, ktory tak domyslnie konfiguruje jakis alternatywny port czy cos. Wylaczylem - dziala! To bylo jeszcze pod xp, ale przydalo mi sie w lini polecen wpisac 'netstat -anop tcp' (albo cos podobnego), co mi wylistowalo pidy oraz wiecej info na temat procesow ktore korzystaja z portow tcp. Po znalezieniu linijki gdzie byl port 8080 (u ciebie 9990) wzialem jego pid, i a managerze urzadzen kazalem pokazac wszystkie procesy oraz ich pidy (musialem dodac kolumne z pidami bo domyslnie nie byla wybrana), i w ten sposob doszedlem do tego jaki proces dany port zajmuje. U mnie wyszedl skype, u ciebie pewnie cos innego bedzie, ale przynajmniej jest szansa ze sie dowiesz co to.

0

@Wibowit
Postawiłem na tym archetypie który podałeś i pojawia się dalej błąd z tym portem (o którym zaraz napisze). Ale aplikacja uruchamia się, oczywiście ta szablonowa - nic dalej nie robiłem.

@mućka
oh jak dobrze, że nie jestem w tych dziwnych przemyśleniach. To co powiedziałeś to jakby moje myśli, ale jakieś bardziej klarowne i dobrze powiedziane. Jesli chodzi o pisanie w Javie na dłuższa metę - to masz racje - jeden argument za tym przemawia na pewno: $$. Stawki dla Java developerów są ogromne, w porównaniu do innych np. php, python itd. Nie mówie tu o ludziach z 10+ latach doświadczenia (chociaż i u nich też pewnie są różnice) Ale np stawki dla 1-3 lata doświadczenia komerc. w technologii. Ale ucząc się tylko dla tego, żeby mieć kiedyś dobrze płatną pracę - można, bo czemu nie - ale czuję, że się zniechęcić szybko idzie.

Co byś wybrał nie-hobbystycznie do web-dev (Albo i nie) i dlaczego? ;) z ciekawości

Co do zajmowania portu: Zrobiłem jak mówiłeś, netstat'em znalazłem to co zajmuje port 9990, wziąłem PID, w menedżerze znalazłem, jest to NVIDIA Network Service - w dodatku to nie proces, tylko usługa, która chroniona jest jakimiś prawami i nie mam możliwości zlikwidowania jej (odmowa dostępu). Gdzieś czytałem w google tak na szybko, że w pliku konfiguracyjnym w folderze JBoss'a zmienia się cos z "0" na "100" i odpala pod innym portem po prostu. (sprawdziłem, ale portu sie doszukać nie mogłem :D)

Może kwestia jest tego typu - że zamiast open source'owego Springa zaczać używać JEE(+ jakies inne frameworki: Vaadin, GWT) które przechodzi community proces? Może tam będzie wszystko trochę lepiej poskładane? Chociaż integracja orm typu hibernate, czy spring security (które PODOBNO rozwiązania dot. bezpieczeństwa JEE biją na łeb) wciąż zostają.

Ciekawi mnie trochę zdanie @Shalom'a i @Koziołek'a (bo ich kojarze jako byłych/obecnych java developerów z zawodu :))

0

Stawki dla Java developerów są ogromne, w porównaniu do innych np. php, python itd.

Na ktorej czesci globu?
http://www.indeed.com/salary?q1=Java&l1=&q2=Python&l2=&q3=Ruby&l3=&tm=1

0

@n0name_l tylko czy indeed.com pokazuje faktycznie dobre dane? Zawsze może być java kawa, java wyspa (nawet jeśli chodzi o prace - praca na wyspie java), python to może być wąż o którym w internecie sporo, a ruby - kryształki i świecidełki :) nie znam się na tym jak to działa, ale czysto hipotetycznie moge tak założyć

Częśc globu? ta między niemcami a ukrainą i białorusią. Ogladając oferty i płace dla programistów php/ruby/python a Java - widać różnice. Jak sie patrzy C# a Java to dopieero są praawie zbliżone kwoty, ale dalej Java jest na +. Tak przynajmniej wychodzi z moich obserwacji ;)
Wiadomo też, że specjalista od Pythona zarobi więcej niż jakiś lajk od Javy który sie kuł bo mu wykładowca kazał i poszedł do pracy bo musiał. Ale mówie tu o samych ofertach na staże/junior developerów, pierwsza prace - ale też późniejsze pisanie jako senior itp.

edit
z reszta jak sie tak przyjrzałem, powpisywalem tam frameworki po nazwach, to wezmy np. PHP: 88 000 USD - rozumiem, że to stawka roczna. 88k USD * 3.04 = 267520zł --> /12 = prawie 23k zł/mc?

0

No. Pokazuje w miare rzetelne dane.

ta między niemcami a ukrainą i białorusią

Tez niezbyt.

Tak przynajmniej wychodzi z moich obserwacji ;)

Problem jest w tym, ze obserwacje rzadko kiedy maja cokolwiek wspolnego z obiektywizmem.

prawie 23k zł/mc?

751828¥/mc. Wow! PHPowcy to bogacze!

0

czyli uważasz @n0name_l ze javowcy zarabiaja tak samo jak programisci pythona, php itp? ja zawsze słuchałem(czytałem, żeby nie być gołosłownym) narzekań, że zarabiają za mało, a ci od javy zarabiaja krocie

751828¥/mc. Wow! PHPowcy to bogacze!

troche pojechałeś sarkazmem, ale jeśli się nie mylę (jesli tak to mnie poprawcie) to 23tys zł miesiecznie dla programisty PHP to w polsce.. powiedzmy nieosiagalna kwota. Nawet jak rankingi na indeed są zbierane z całego świata, to PHPowcy są w stanie osiagnac średnia 7.5 tys USD (23k zł)? a Javowcy prawie 9.5tys USD (28tys zł)?

1

Indeed ma dane z rynku amerykańskiego. Co do wysokich zarobków ludzi programujących w Pythonie - trzeba brać pod uwagę, że Python to nie tylko web. Np. u nas Python jest używany do oskryptowania testów funkcjonalnych oraz infrastruktury zarządzającej klastrami. Robota tak samo rozwojowa i odpowiedzialna jak praca przy trzonie produktu w Javie. Poza tym bardzo często w ogłoszeniach Python występuje obok innego języka - np. jako "mile widziane". Indeed bierze ogłoszenia po słowach kluczowych i nie odróżnia, czy dany język jest głównym wymaganiem, czy dodatkowym. Dlatego wydaje mi się, że będzie to powodowało sztuczne zbliżanie stawek do siebie.

A $88k rocznie w USA to nie jest znowu tak dużo. Dla programisty seniora mieszkającego w jakimś drogim stanie (np. CA, NY) to nawet całkiem mało. Weź pod uwagę, że za studia jednego dziecka zapłacisz $60k-$80k (musisz sam odłożyć, nie ma lekko), za kawalerkę w SF jakieś $500k-$1mln, a za domek z ogródkiem godzinę od centrum SF jakieś $1-$3 mln. Jedyne pocieszenie, że paliwo i samochody 2x tańsze :D

0

Przykład "magii Javy" z wczoraj:
W aplikacji PrimeFaces po kliknięciu na sort lazy datatable sortuje się poprawnie.
Po drugim (!) kliknięciu nie działa już nic, co bazuje na Ajaxie.

Przyczyna:
Plik JAR (PrimeFaces lub JSF - nieważne) był w dwóch miejscach dostępnych na ścieżce wyszukiwań, w związku z czym AJAX dostawał jakieś bzdurne odpowiedzi z serwera...
Doszedłem do tego dopiero jak odpaliłem konsolę JavaScript gdzie był jako-tako rozpoznawalny komunikat błędu.

#!#^%!

0

@Krolik w USA są takie wysokie koszty życia? oO trochę łapie zdziwko na myśl, że w USA każda rodzine przypada dom(gdzies czytalem takie dane), a w polsce połowa albo lepiej musi wynajmować :D
Racja racja, python to nie tylko web. I dlatego jego zarobki mogą być niższe. Bo przecież, najwięcej dają firmy które potrzebują czegoś, to jest teraz "na topie", każdy tego potrzebuje itp itp
Co to stawek to o to mi właśnie chodziło, te słowa mogą występować w różnych miejscach. "JavaScript" występuje w większości ogłoszeń do ASP, C#, Javy, PHP, RoR, python i tak dalej i tak dalej..

@vpiotr
oooo, to to to! dość dziwne, że takie rzeczy maja miejsce w takich wielkich narzędziach jak JSF. Nie ma powiadomienia o duplikacji(tak jak mówisz, w ścieżkach np) szczególnie, że błąd wydaje się być dość powszechny, a jak nie powszechny to wysoce prawdopodobny

Może jest tu ktoś, kto zawodowo pisał w 2-3 czy więcej różnych technologiach, najlepiej webowych (ale i nie webowych) i potrafiłby porównać jakoś prace w Javie z innymi technologiami? Pod względem pracochłonności, bug'o / problemo-genności (czy statystycznie występuje mniej/wiecej problemów z daną technologią), skomplikowania itd :P?

edit
BTW: w pracy RoR'isty raczej używa się linuxa prawda? w ogóle python/ruby to raczej unixy?

0
azalut napisał(a):

Racja racja, python to nie tylko web. I dlatego jego zarobki mogą być niższe. Bo przecież, najwięcej dają firmy które potrzebują czegoś, to jest teraz "na topie", każdy tego potrzebuje itp itp

Mocne słowa, żeby nie powiedzieć g**no prawda ;)
Najwięcej dają firmy, które na to stać i potrzebują software najwyższej jakości. Czyli właściwie branża finansowa, bankowość, transakcje giełdowe, low-latency.

0

@datdata Znawcą może nie jestem, ale kiedyś troche inaczej rynek wyglądał. Serwisy internetowe / web aplikacje, jak zwał tak zwał, nie miały takiego popytu jak teraz. Stąd moje przemyślenia, że web aktualnie góruje na rynku

0

Tak jak mówię: popularność czegoś ma małą (jeśli jakąś) korelację z zarobkami w robieniu tego czegoś. Równie dobrze możesz powiedzieć, że najwięcej zarabiają nauczyciele, bo edukacja jest ogromnym rynkiem.

Fakt, webappki to spory rynek i sporo kasy, ale nie sądzę, że jest to coś, gdzie programując zarabia się najwięcej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1