If your binding expressions contain errors or data sources are not available you can get several warnings from EL resolver. But no one of BBB developers thought about good debbuging feedback in such situations. All you get are some of these
[sourcecode type="java"]
2010-07-17 14:10:24 org.jdesktop.beansbinding.util.logging.Logger log
WARNING: isReadable(): expression is unresolvable
2010-07-17 14:10:24 org.jdesktop.beansbinding.util.logging.Logger log
WARNING: updateCache(): expression is unresolvable
2010-07-17 14:10:26 org.jdesktop.beansbinding.util.logging.Logger log
WARNING: isWriteable(): expression is unresolvable
[/sourcecode]
But where? In which class? What binding expression? Damn it! How could I work with this tool?!
I've made very simple changes in CLProperty class of BBB src code. One of them
[sourcecode type="java"]
logger.warning("updateCache(): expression is unresolvable: " +
expression + " for source " + source);
[/sourcecode]
Simple, huh? Now I get
[sourcecode type="java"]
2010-07-17 14:27:10 org.jdesktop.beansbinding.util.logging.Logger log
WARNING: updateCache(): expression is unresolvable: ValueExpression[${rootModel.currentRouteTemplate.inRoutePointTemplates}] for source pl.autoguard.ac21.ptir.mvc.view.TransportRouteView[,0,0,856x612,invalid...
[/sourcecode]
Now I can clearly see that ${rootModel.currentRouteTemplate.inRoutePointTemplates} expression failed for visual element in pl.autoguard.ac21.ptir.mvc.view.TransportRouteView class.
Downloads
Altered ELProperty class.
Altered betterbeansbinding-core-1.3.0b1.jar and betterbeansbinding-core-1.3.0b1.pom (note version 1.3.0b1). This jar should be used instead 1.3.0 version. Update your dependencies today! :)
Saturday, July 17, 2010
Thursday, July 1, 2010
NoClassDefFoundError: org.slf4j.impl.StaticLoggerBinder
I get error while running code with Hibernate 3.5.x
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165)
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:127)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at pl.bartekzdanowski.MyTest.setUp(MyTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 43 more
The solution is described on SLF4j page. Simply you have to add slf4j-api with wersion greater than 1.5.6. In maven pom.xml you can declare slf4j explicitly:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:255)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:165)
at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:127)
at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:54)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:48)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:32)
at pl.bartekzdanowski.MyTest.setUp(MyTest.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 43 more
The solution is described on SLF4j page. Simply you have to add slf4j-api with wersion greater than 1.5.6. In maven pom.xml you can declare slf4j explicitly:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.0</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
Wednesday, June 30, 2010
I po Javarsovii...
Powiem Wam, że myślami ciągle krążę wokół sobotniej konferencji. Rozmach z jakim udało nam się zrobić Javarsovię 2010 przerósł moje oczekiwania. Miało być 500 osób - taką informację przedstawialiśmy sponsorom. A tymczasem przybyło ponad 650. Powstrzymam się od podsumowań szczegółowych. Uczynili to już moi kompani z Kapituły, m.in. Łukasz. Chciałbym jednak podziękować uczestnikom - za ilość przybyłych osób i wspaniałą atmosferę. W piątek wieczorem było cicho i monotonnie, kiedy szykowaliśmy stanowiska, stoły oraz 600 toreb z materiałami :) . Ale w sobotę sale tętniły życiem i świetnym humorem odwiedzających.
Drugie podziękowania idą do sponsorów. Inaczej byśmy się nie spotkali. Przytoczę tu ich wszystkich
Bardzo Wam dziękujemy i do zobaczenia na Warsjavie na jesieni oraz na Javarsovia 2011, za rok :-)
Drugie podziękowania idą do sponsorów. Inaczej byśmy się nie spotkali. Przytoczę tu ich wszystkich
- Sponsorzy platynowi: Javart, IBM
- Sponsorzy złoci: Google, Microsoft, Azul Systems, Oracle
- Sponsorzy srebrni: Adobe, TouK, ITKontrakt, e-point, tieto
- Sponsorzy: Sages, Javatech
- Partnerzy: iStream, SoftwareMill, Helion, OVH.pl, Sun Learning Services Polska
- Patroni medialni: DobreProgramy.pl, Radio Kampus
Bardzo Wam dziękujemy i do zobaczenia na Warsjavie na jesieni oraz na Javarsovia 2011, za rok :-)
Labels:
develop
Saturday, June 26, 2010
Javarsovia 2010 za kilka godzin
Niedawno wróciłem z Centrum Konferencyjnego, gdzie przygotowywaliśmy materiały i sale na konferencję. Mamy 12 dzielnych wolontariuszy, którzy prawie wszyscy do końca ciężko pracowali, aby przytować imprezę.
Przygotowania trwały pół roku, więc jest to owoc ciężkiej pracy wszystkich członków Kapituły. Już się nie mogę doczekać :) więc jeszcze tylko wydrukuję ostateczne listy potwierdzonych i idę spać :)
Przygotowania trwały pół roku, więc jest to owoc ciężkiej pracy wszystkich członków Kapituły. Już się nie mogę doczekać :) więc jeszcze tylko wydrukuję ostateczne listy potwierdzonych i idę spać :)
Labels:
develop
Friday, June 11, 2010
650 na Javarsovię, a rejestracja trwa!
Właśnie sprawdziłem statystyki i mamy 653 zapisanych, w tym 33 damy :D
To jakiś madness! Moim zdaniem, nawet jak część nie przyjdzie, to i tak przekroczymy PÓŁ TYSIĄCA! :D
To jakiś madness! Moim zdaniem, nawet jak część nie przyjdzie, to i tak przekroczymy PÓŁ TYSIĄCA! :D
Labels:
java,
javarsovia
Thursday, June 3, 2010
Rejestracja na Javarsovia 2010 otwarta!
Rejestracja na Javarsovię 2010 jest już otwarta od dwóch dni. Mamy już przeszło 250 zapisanych!

A czy Wy już jesteście zapisani? Bo ja zdaje się widziałem Waszego sąsiada, tego grubszego spod 5tki, że on już zarejestrowany!
Uczestnictwo, dzięki sponsorom, jest bezpłatne, ale wymaga rejestracji.
Możecie sobie poczytać o zgłoszonych prezentacjach, a podczas rejestracji można wybrać 6 preferowanych. Na podstawie wyborów ułożymy 4 ścieżki.
Jeśli już się zarejestrowaliście, ale nie określiliście preferencji rozkładu, to proszę zróbcie to - będzie to dla nas cenną wskazówką.
Wszystko jest mailu potwierdzającym.
Pomóżcie nam promować Javarsovię. Miejcie swój wkład w najwiekszą bezpłatną konferencję Javową w Polsce. Piszcie na blogach, dzwońcie do rodziny, ustawcie statusy na GG itp., wysyłajcie smsy, zaznaczcie swoją obecność na konferencji na LinkedIn i na Facebooku, niech Wasze kontakty wiedzą co się szykuje.
Do dzieła! :D
A czy Wy już jesteście zapisani? Bo ja zdaje się widziałem Waszego sąsiada, tego grubszego spod 5tki, że on już zarejestrowany!
Uczestnictwo, dzięki sponsorom, jest bezpłatne, ale wymaga rejestracji.
Możecie sobie poczytać o zgłoszonych prezentacjach, a podczas rejestracji można wybrać 6 preferowanych. Na podstawie wyborów ułożymy 4 ścieżki.
Jeśli już się zarejestrowaliście, ale nie określiliście preferencji rozkładu, to proszę zróbcie to - będzie to dla nas cenną wskazówką.
Wszystko jest mailu potwierdzającym.
Pomóżcie nam promować Javarsovię. Miejcie swój wkład w najwiekszą bezpłatną konferencję Javową w Polsce. Piszcie na blogach, dzwońcie do rodziny, ustawcie statusy na GG itp., wysyłajcie smsy, zaznaczcie swoją obecność na konferencji na LinkedIn i na Facebooku, niech Wasze kontakty wiedzą co się szykuje.
Do dzieła! :D
Labels:
java,
javarsovia
Tuesday, April 27, 2010
InetAddress.isReachable() jest do bani
Napisałem mały program testujący czy klient "widzi" prawidłowo adres i porty naszego serwera aplikacyjnego. Zdarza się, że Firewalle klientów skutecznie blokują łączność.
Zależało mi, aby w pierwszym kroku "spingować" hosta. Niestety wczoraj odkryliśmy buga, bo polegałem na metodzie InetAddress.isReachable(). Tymczasem sposób jest do chrzanu, bo implementacja nie pinguje a odpytuje usługę echo, która stoi na porcie 7. Wielu adminów blokuje tego typu usługi, starając się maksymalnie uszczelnić serwery. U nas w firmie też i dlatego nasi klienci dostawali informację, że istnieje brak łączności z jednym z serwerów.
Nie dostarczę dzisiaj rozwiązania, z braku czasu, ale wrócę do tematu kiedyś.
Poniżej wadliwy kod:
[sourcecode type="java"]
final String host = "zdanek.ostrejezyki.pl";
final int timeOut = 3000;
final boolean status = InetAddress.getByName(host).isReachable(timeOut);
if (status == false) {
throw new IOException("Brak lacznosci z " + host);
}
[/sourcecode]
Zależało mi, aby w pierwszym kroku "spingować" hosta. Niestety wczoraj odkryliśmy buga, bo polegałem na metodzie InetAddress.isReachable(). Tymczasem sposób jest do chrzanu, bo implementacja nie pinguje a odpytuje usługę echo, która stoi na porcie 7. Wielu adminów blokuje tego typu usługi, starając się maksymalnie uszczelnić serwery. U nas w firmie też i dlatego nasi klienci dostawali informację, że istnieje brak łączności z jednym z serwerów.
Nie dostarczę dzisiaj rozwiązania, z braku czasu, ale wrócę do tematu kiedyś.
Poniżej wadliwy kod:
[sourcecode type="java"]
final String host = "zdanek.ostrejezyki.pl";
final int timeOut = 3000;
final boolean status = InetAddress.getByName(host).isReachable(timeOut);
if (status == false) {
throw new IOException("Brak lacznosci z " + host);
}
[/sourcecode]
Subscribe to:
Posts (Atom)
