The drawbacks of JNLP have to be pointed out, too. These have already been discussed in regard to the JNLP Client overhead (a little initial delay and the related JNLP Client's splash window that may confuse inexperienced users).
Apart from these minuses, the most important one is that only J2SE code can use the JNLP technology because such a technology takes advantage of the Java 2 class loader mechanism that is not available on JDK 1.1.x.
Another important limitation of the JNLP technology is that only HTTP connections are supported. Any other communication protocol (such as ftp or gopher) is not supported by JNLP Clients and Servers. That implies, for example, that no proprietary communication protocol can be used with JNLP.
Finally, some code rewriting is needed when transforming already written Java code to be run with JNLP. The JNLP Client uses the java 2 class loader mechanism for loading resources. Thus, client programs have to use its class loader in order to access the resources loaded by the JNLP Client.