start glassfish4 javadb running jdk1.7.0_51
Problem:Starting glassfish4 with javadb results in this Error:
Starting database in Network Server mode on host 0.0.0.0 and port 1527.
Unable to start database. Please check log in /Applications/NetBeans/glassfish-4.0/glassfish/databases/derby.log.
Command start-database failed.
Cause:According to Java™ SE Development Kit 7, Update 51 Release Notes
Change in Default Socket PermissionsThis means that you have to explicity set the permissions for your application to be able to access the ports range between 1025 and 49151.
The default socket permissions assigned to all code including untrusted code have been changed in this release. Previously, all code was able to bind any socket type to any port number greater than or equal to 1024. It is still possible to bind sockets to the ephemeral port range on each system. The exact range of ephemeral ports varies from one operating system to another, but it is typically in the high range (such as from 49152 to 65535). The new restriction is that binding sockets outside of the ephemeral range now requires an explicit permission in the system security policy.
Most applications using client tcp sockets and a security manager will not see any problem, as these typically bind to ephemeral ports anyway. Applications using datagram sockets or server tcp sockets (and a security manager) may encounter security exceptions where none were seen before. If this occurs, users should review whether the port number being requested is expected, and if this is the case, a socket permission grant can be added to the local security policy, to resolve the issue.
You can therefore grant this permission by appending this line in the list of permissions granted:
sudo vi java.policy
add the following permission to the end of the main permission section:
permission java.net.SocketPermission "localhost:1527", "listen,resolve";