Facing NoSuchAuthorityCodeException problem when deployed GeoTools on server

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Facing NoSuchAuthorityCodeException problem when deployed GeoTools on server

Zheng Xudong
Hi all,

I employ GeoTools(8.0-M4) in my server code, and I use Tomcat 7 as the server application. However the server throws NoSuchAuthorityCodeException when I want to get a CRS. My code is just like:

    CRSAuthorityFactory crsFactory = CRS.getAuthorityFactory(true);
    CoordinateReferenceSystem crs = crsFactory.createCoordinateReferenceSystem("EPSG:4326");

the exceptions information was:
    org.opengis.referencing.NoSuchAuthorityCodeException: No code "EPSG:4326" from authority "EPSG" found for object of type "EngineeringCRS".
at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.noSuchAuthorityException(CartesianAuthorityFactory.java:136)
at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createEngineeringCRS(CartesianAuthorityFactory.java:130)
at org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createCoordinateReferenceSystem(CartesianAuthorityFactory.java:121)
at org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:800)
at org.geotools.referencing.factory.ThreadedAuthorityFactory.createCoordinateReferenceSystem(ThreadedAuthorityFactory.java:731)
at org.geotools.referencing.DefaultAuthorityFactory.createCoordinateReferenceSystem(DefaultAuthorityFactory.java:179)
at edu.buaa.navigation.MapListener.contextInitialized(MapListener.java:90)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

The strange thing was these code could execute without any problems if I run it as a local Java Application, but it failed when I run it on the server. I guess something wrong with the way of jar files deployed. I just use Eclipse to create a "dynamic web project" and run it on tomcat 7. All needed GeoTools library jar files seems deployed in the WEB-INF/lib folder.

Who can tell me why this exception was thrown and how could I solve it?

Thanks in advance.

--
Zheng Xudong
State Key Laboratory of Software Development Environment
School of Computer Science and Engineer, BeiHang University

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2

_______________________________________________
GeoTools-GT2-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
Reply | Threaded
Open this post in threaded view
|

Re: Facing NoSuchAuthorityCodeException problem when deployed GeoTools on server

Oscar Fonts
Hi Zheng,

To decode a CRS code, you need access to the EPSG database, which it
seems it's not present.

* Make sure you add gt-epsg-hsql in your project, and its
depencencies, if any (you could use other EPSG factories as well, but
that's the most usual).
* To see what factories are available, you can iterate through
ReferencingFactoryFinder.getCRSAuthoriyFactories. See if
ThreadedEpsgHsqlFactory is there.
* Better use CRS.decode("EPSG:4326"), which will loop through all
available factories, and is a more compact code.

Hope this helps.

Oscar.


2012/4/16 Zheng Xudong <[hidden email]>:

> Hi all,
>
> I employ GeoTools(8.0-M4) in my server code, and I use Tomcat 7 as the
> server application. However the server throws NoSuchAuthorityCodeException
> when I want to get a CRS. My code is just like:
>
>     CRSAuthorityFactory crsFactory = CRS.getAuthorityFactory(true);
>     CoordinateReferenceSystem crs =
> crsFactory.createCoordinateReferenceSystem("EPSG:4326");
>
> the exceptions information was:
>     org.opengis.referencing.NoSuchAuthorityCodeException: No code
> "EPSG:4326" from authority "EPSG" found for object of type "EngineeringCRS".
> at
> org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.noSuchAuthorityException(CartesianAuthorityFactory.java:136)
> at
> org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createEngineeringCRS(CartesianAuthorityFactory.java:130)
> at
> org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createCoordinateReferenceSystem(CartesianAuthorityFactory.java:121)
> at
> org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:800)
> at
> org.geotools.referencing.factory.ThreadedAuthorityFactory.createCoordinateReferenceSystem(ThreadedAuthorityFactory.java:731)
> at
> org.geotools.referencing.DefaultAuthorityFactory.createCoordinateReferenceSystem(DefaultAuthorityFactory.java:179)
> at edu.buaa.navigation.MapListener.contextInitialized(MapListener.java:90)
> at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
>
> The strange thing was these code could execute without any problems if I run
> it as a local Java Application, but it failed when I run it on the server. I
> guess something wrong with the way of jar files deployed. I just use Eclipse
> to create a "dynamic web project" and run it on tomcat 7. All needed
> GeoTools library jar files seems deployed in the WEB-INF/lib folder.
>
> Who can tell me why this exception was thrown and how could I solve it?
>
> Thanks in advance.
>
> --
> Zheng Xudong
> State Key Laboratory of Software Development Environment
> School of Computer Science and Engineer, BeiHang University
>
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
>
> _______________________________________________
> GeoTools-GT2-Users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2
_______________________________________________
GeoTools-GT2-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
Reply | Threaded
Open this post in threaded view
|

Re: Facing NoSuchAuthorityCodeException problem when deployed GeoTools on server

Zheng Xudong
Hi Oscar,

It works after I add gt-epsg-hsql dependency. I forgot it, because my project refers to another project which contain CRS creation code and this dependency, so it works when I run it as local Java application. That's a little strange and make me confused.

Thank you very much and best regards!

On Mon, Apr 16, 2012 at 1:44 PM, Oscar Fonts <[hidden email]> wrote:
Hi Zheng,

To decode a CRS code, you need access to the EPSG database, which it
seems it's not present.

* Make sure you add gt-epsg-hsql in your project, and its
depencencies, if any (you could use other EPSG factories as well, but
that's the most usual).
* To see what factories are available, you can iterate through
ReferencingFactoryFinder.getCRSAuthoriyFactories. See if
ThreadedEpsgHsqlFactory is there.
* Better use CRS.decode("EPSG:4326"), which will loop through all
available factories, and is a more compact code.

Hope this helps.

Oscar.


2012/4/16 Zheng Xudong <[hidden email]>:
> Hi all,
>
> I employ GeoTools(8.0-M4) in my server code, and I use Tomcat 7 as the
> server application. However the server throws NoSuchAuthorityCodeException
> when I want to get a CRS. My code is just like:
>
>     CRSAuthorityFactory crsFactory = CRS.getAuthorityFactory(true);
>     CoordinateReferenceSystem crs =
> crsFactory.createCoordinateReferenceSystem("EPSG:4326");
>
> the exceptions information was:
>     org.opengis.referencing.NoSuchAuthorityCodeException: No code
> "EPSG:4326" from authority "EPSG" found for object of type "EngineeringCRS".
> at
> org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.noSuchAuthorityException(CartesianAuthorityFactory.java:136)
> at
> org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createEngineeringCRS(CartesianAuthorityFactory.java:130)
> at
> org.geotools.referencing.factory.epsg.CartesianAuthorityFactory.createCoordinateReferenceSystem(CartesianAuthorityFactory.java:121)
> at
> org.geotools.referencing.factory.AuthorityFactoryAdapter.createCoordinateReferenceSystem(AuthorityFactoryAdapter.java:800)
> at
> org.geotools.referencing.factory.ThreadedAuthorityFactory.createCoordinateReferenceSystem(ThreadedAuthorityFactory.java:731)
> at
> org.geotools.referencing.DefaultAuthorityFactory.createCoordinateReferenceSystem(DefaultAuthorityFactory.java:179)
> at edu.buaa.navigation.MapListener.contextInitialized(MapListener.java:90)
> at
> org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4779)
> at
> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5273)
> at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1566)
> at
> org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1556)
> at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
> at java.util.concurrent.FutureTask.run(FutureTask.java:166)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
> at java.lang.Thread.run(Thread.java:722)
>
> The strange thing was these code could execute without any problems if I run
> it as a local Java Application, but it failed when I run it on the server. I
> guess something wrong with the way of jar files deployed. I just use Eclipse
> to create a "dynamic web project" and run it on tomcat 7. All needed
> GeoTools library jar files seems deployed in the WEB-INF/lib folder.
>
> Who can tell me why this exception was thrown and how could I solve it?
>
> Thanks in advance.
>
> --
> Zheng Xudong
> State Key Laboratory of Software Development Environment
> School of Computer Science and Engineer, BeiHang University
>
> ------------------------------------------------------------------------------
> For Developers, A Lot Can Happen In A Second.
> Boundary is the first to Know...and Tell You.
> Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
> http://p.sf.net/sfu/Boundary-d2dvs2
>
> _______________________________________________
> GeoTools-GT2-Users mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>

--
Zheng Xudong
State Key Laboratory of Software Development Environment
School of Computer Science and Engineer, BeiHang University

------------------------------------------------------------------------------
For Developers, A Lot Can Happen In A Second.
Boundary is the first to Know...and Tell You.
Monitor Your Applications in Ultra-Fine Resolution. Try it FREE!
http://p.sf.net/sfu/Boundary-d2dvs2

_______________________________________________
GeoTools-GT2-Users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users