Work at SourceForge, help us to make it a better place! We have an immediate need for a Support Technician in our San Francisco or Denver office.

Close

Creating Communities in Fez on Apache2

Help
2006-01-09
2012-10-29
  • I can log into Fez as administrator now. However, I'm unable
    to create a Fez community. I've discovered two paths through
    the application for creating a community, and they both fail:

    My Fez -> Create -> Create Community -> Page Not Found :-(

    Browse Communities -> List of Communities -> Create Community -> [Fill out Name, Keyword 1] -> Done, blank page appears :-(

    After restarting Fedora, Apache, and MySQL, we had the same problem as before. After submitting a new commumnity, we get the following errors from the Fedora server:

    fedora.server.errors.MalformedPidException: PID delimiter (:) is missing.
    at fedora.server.Server.getPID(Server.java:1577) at fedora.server.access.DefaultAccess.getDatastreamDissemination(DefaultAccess.java:832)

    Why would it need a PID here? Arent's PIDs used by datastream objects only? Or is there some standard procedure to create a community? For example, some users or groups have to be created first?

    We've already ingested two batches into Fedora via the fedora-ingest batch script (this is running on Win2003). Anticipating that we would want to logically partition batches into communities and collections, we generated PIDs with the format <collectionName>:<siteHandle>.<packageHandle>. We plan to use Fez to do the following:
    - Create a community
    - Create two collections with the community
    - Associate each batch with a community, e.g. Administration -> Index Fedora Objects into Fez.

    We appreciate your help,

    Justin S. Davis
    NDIIPP @ UIUC

     
    • Christiaan
      Christiaan
      2006-02-28

      Can you download the latest Fez file 'include/class.fedora_api.php' from the Fez CVS and try creatinga community again.

      It should spit out more debug error messages instead of a blank page.

       
    • Christiaan
      Christiaan
      2006-01-09

      Hi Justin,

      PIDs are required by all fedora objects (not datastreams). Eg an object would be UIUC:1 which could be a community, collection or record object. Each object has multiple datastreams which have datastream IDs eg example_image.jpg or DC or RELS-EXT.

      Therefore when you create a community Fez calls the Fedora API-M-Lite function 'getNextPID' so it can build the XML for the community object to ingest once it has been built.

      How have you setup your Fedora config file (fedora.fcfg)? What have you set to the default PID? For us at University of QLD we have setup the default PID to be UQ, and put UQ in the Retain PIDS config like this:

      &lt;param name=&quot;pidNamespace&quot; value=&quot;UQ&quot;/&gt;
      &lt;param name=&quot;retainPIDs&quot; value=&quot;UQ demo test changeme fedora-bdef             fedora-bmech       tutorial&quot;/&gt;
      

      The pidNamespace is what your objects will be eg UQ:1, UQ:2 auto-incrementing and are what Fez will use as the PIDs for creating objects.

      It looks like Fez is not able to getNextPID successfully or the pidNamespace is not in the retainPIDs config tag (and it must be or ingest will fail).

      You can see if the getNextPID function is working and what it returns by opening http://your_fedora_server/mgmt/getNextPID?xml=true
      in your browser.

      Let me know how you go.

      Cheers,
      Christiaan

       
    • J.Staebler
      J.Staebler
      2006-01-11

      Hey Christiaan, hi Justin,

      same problem here. Tried as you said and had a look over the fedora.fcfg. My PID is WaWo - and with './fedora/mgmt/getNextPID?xml=true' I get a correct one e.g. WaWo:3.
      Well, the returning URL by then is https:
      'https://localhost:8443/fedora/mgmt/getNextPID?xml=true' - Question - may this be a problem?
      (Certificate is installed correctly.)
      (fedora is set to 'ssl-authenticate-apim')

      Also, after I submited the Community-creation page back (Publish or Approval or Done), I get a new PID in the background. You can see it, while you open a second browser and check the PID afterwards. It increases. But still the page is empty.

      regards
      Jürgen

      Hopefully this helps out a little bit more.

       
    • Christiaan
      Christiaan
      2006-01-11

      Hi Jürgen,

      Is your WaWo nameSpace also in your retainPIDs in your fedora.fcfg? Fez cannot save PIDS it obtained from getNextPID unless that nameSpace is in retainPIDs.

      Regards,
      Christiaan

       
    • J.Staebler
      J.Staebler
      2006-01-12

      Hey Christiaan,

      Here the part of the fedora.fcfg:
      ..
      <param name="pidNamespace" value="WaWo"/>
      <param name="retainPIDs" value="WaWo demo test changeme fedora-bdef fedora-bmech tutorial"/>
      ..

      regards,
      Jürgen

      PS: Will try to switch the SSL/NOSSL Security Setup possibilities today, maybe there's a problem.

       
    • J.Staebler
      J.Staebler
      2006-01-12

      Hi Christiaan,

      I changed the Fedora Security to nosslapim and checked the fedora.fcfg again; also I changed it in the Fez settings.
      I fedora I set the log to 'finest'.

      Now some fedora logs:

      ...
      ! Here I started to get a PID with 'http://localhost:8080/fedora/mgmt/getNextPID?xml=true' - and it works correct:
      <finest time="1137060048465" thread="11">Entered DefaultManagement.getNextPID</finest>
      <finest time="1137060048465" thread="11">Entered enforceGetNextPid</finest>
      <finest time="1137060048465" thread="11">Exiting enforceGetNextPid</finest>
      <finest time="1137060048576" thread="11">Exiting DefaultManagement.getNextPID</finest>
      ! Now I use Fez and want to create a community, therefore when loding the page the getPid functions are called from fez - Result in fedoralog here:
      <finest time="1137060105067" thread="10">fedora.server.utilities.Logger: [FedoraAccessServlet] GetDatastreamDissemination Syntax Encountered: http://localhost:8080/fedora/get/-2/FezMD?null</finest>
      <finest time="1137060105067" thread="10">fedora.server.utilities.Logger: PID: -2 dsID: FezMD asOfDate: null</finest>
      <finest time="1137060105838" thread="12">got server instance: s_init: true</finest>
      <warning time="1137060105888" thread="12">Error carried up to API-A level: fedora.server.errors.MalformedPidException
      fedora.server.Server.getPID(Server.java:1599)
      fedora.server.access.DefaultAccess.getDatastreamDissemination(DefaultAccess.java:831)
      fedora.server.access.FedoraAPIABindingSOAPHTTPImpl.getDatastreamDissemination(FedoraAPIABindingSOAPHTTPImpl.java:172)
      </warning>

      Now, hopefully this helps you out more.

      regards
      Jürgen

       
    • J.Staebler
      J.Staebler
      2006-01-12

      Sorry wrong posting earlier...

      Hi Christiaan,

      Afterword:
      I tried ELATED - exact same Fedora Config as when using fez - works fine. There I get the PID and when browsing with fedora-admin its all there.
      So, the settings/config from fedora seems correct.

      regards
      Jürgen

       
    • Christiaan
      Christiaan
      2006-01-12

      Hi Jurgen and Justin,

      In include/class.fedora_api.php in function 'openSoapCall' can you uncomment (remove the '//' these two lines?

      Then try creating a community again. This will dump out a large amount of soap debug data which will help diagnose the problem.

      Also perhaps you could send me your Fez config.inc.php (without usernames and passwords) to mrangryfish at users.sourceforge.net.

      Cheers,
      Christiaan

       
    • J.Staebler
      J.Staebler
      2006-01-13

      Hi Christiaan,

      Email with debug and config files on its way to you.

      regards
      Jürgen

       
    • I've isolated the problem. Our Tomcat Fedora web.xml file refers to the API-M and API-A SOAP paths by the old (prior to Fedora 2.1b) manner that appends "soap", e.g., "http://localhost:8082/fedora/management/soap". Fez is trying to reach "http://localhost:8082/fedora/services/management", the new way as of Fedora 2.1b. More on this is available in Fedora's documentation at http://www.fedora.info/resources/faq.shtml.

      So, Christiaan, what do you recommended, modify the Fez config or the Fedora web.xml? If the former, could you walk me through what Fez config files to modify and what changes to make?

      Thanks,

      Justin S. Davis
      NDIIPP@UIUC

       
      • Christiaan
        Christiaan
        2006-01-30

        Hi Justin,

        You have two options:

        1. Upgrade Fedora to 2.1b

        or

        1. Keep Fedora at 2.0 and uncomment the Fez config.inc.php 2.0 soap API-M and API-A soap calls and comment out the 2.1b soap calls. Commented out lines in PHP start with two slashes (//). Thats all you have to do.

        I would actually recommend upgrading Fedora as 2.1b is slightly more stable than 2.0.

        The major thing that came in with 2.1b is XACML security. For Fez I recommend not using the new XACML engine as it slows Fedora down (at least it did for us). It can be turned off in the fedora.fcfg as per www.fedora.info documentation. The speed issues are being fixed for 2.1 Final.

        Fedora 2.1 Final is supposed to be released soon, although the release dates keep slipping. It's up to you!

         
    • Well, I stand corrected - the problem is not isolated. getNextPID works, we've upgraded to Fedora 2.1, etc. When creating a community, still getting a blank screen with a new, correct PID at the top. Dumped SOAP debug info as you suggested, no errors appeared in the debug info beneath the PID.

      Any thoughts?

       
      • We are getting this issue with Fez, too, I think. We are using Fez 1.1 BETA with Fedora 2.1. I cannot create a Fez Community. After I put in the name and the first keyword and hit done, the resulting enter_metadata.php page is blank and no community is created.

        I appear to be connecting to my Fedora repository, since, I can see my Fedora objects when I click to Index Fedora Objects into Fez in the Admin area.

        I thought that error logging wasn't on for PHP, but I definitely have it on now but still getting nothing but a blank page.

        Stacy Pennington
        Rhodes College